@stack-spot/ai-chat-widget 0.10.0 → 1.0.0-dev.1768314799914

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 (791) hide show
  1. package/CHANGELOG.md +972 -0
  2. package/README.md +1 -0
  3. package/dist/AbortedError.d.ts +5 -0
  4. package/dist/AbortedError.d.ts.map +1 -0
  5. package/dist/AbortedError.js +7 -0
  6. package/dist/AbortedError.js.map +1 -0
  7. package/dist/StackspotAIWidget.d.ts +48 -7
  8. package/dist/StackspotAIWidget.d.ts.map +1 -1
  9. package/dist/StackspotAIWidget.js +22 -15
  10. package/dist/StackspotAIWidget.js.map +1 -1
  11. package/dist/app-metadata.json +171 -0
  12. package/dist/assets/placeholder.png +0 -0
  13. package/dist/chat-interceptors/CustomInputs.d.ts +22 -0
  14. package/dist/chat-interceptors/CustomInputs.d.ts.map +1 -0
  15. package/dist/chat-interceptors/CustomInputs.js +71 -0
  16. package/dist/chat-interceptors/CustomInputs.js.map +1 -0
  17. package/dist/chat-interceptors/quick-command-questions.d.ts +14 -0
  18. package/dist/chat-interceptors/quick-command-questions.d.ts.map +1 -0
  19. package/dist/chat-interceptors/quick-command-questions.js +28 -0
  20. package/dist/chat-interceptors/quick-command-questions.js.map +1 -0
  21. package/dist/chat-interceptors/quick-commands.d.ts +14 -1
  22. package/dist/chat-interceptors/quick-commands.d.ts.map +1 -1
  23. package/dist/chat-interceptors/quick-commands.js +442 -8
  24. package/dist/chat-interceptors/quick-commands.js.map +1 -1
  25. package/dist/chat-interceptors/send-message.d.ts +27 -2
  26. package/dist/chat-interceptors/send-message.d.ts.map +1 -1
  27. package/dist/chat-interceptors/send-message.js +230 -29
  28. package/dist/chat-interceptors/send-message.js.map +1 -1
  29. package/dist/components/AdaptiveTextArea.d.ts +15 -3
  30. package/dist/components/AdaptiveTextArea.d.ts.map +1 -1
  31. package/dist/components/AdaptiveTextArea.js +22 -10
  32. package/dist/components/AdaptiveTextArea.js.map +1 -1
  33. package/dist/components/AgentCard/AgentCardCreate.d.ts +4 -0
  34. package/dist/components/AgentCard/AgentCardCreate.d.ts.map +1 -0
  35. package/dist/components/AgentCard/AgentCardCreate.js +33 -0
  36. package/dist/components/AgentCard/AgentCardCreate.js.map +1 -0
  37. package/dist/components/AgentCard/dictionary.d.ts +23 -0
  38. package/dist/components/AgentCard/dictionary.d.ts.map +1 -0
  39. package/dist/components/AgentCard/dictionary.js +23 -0
  40. package/dist/components/AgentCard/dictionary.js.map +1 -0
  41. package/dist/components/AgentCard/index.d.ts +5 -0
  42. package/dist/components/AgentCard/index.d.ts.map +1 -0
  43. package/dist/components/AgentCard/index.js +55 -0
  44. package/dist/components/AgentCard/index.js.map +1 -0
  45. package/dist/components/AnimatedOpacity.d.ts +8 -0
  46. package/dist/components/AnimatedOpacity.d.ts.map +1 -0
  47. package/dist/components/AnimatedOpacity.js +46 -0
  48. package/dist/components/AnimatedOpacity.js.map +1 -0
  49. package/dist/components/AutoFocus.d.ts +23 -0
  50. package/dist/components/AutoFocus.d.ts.map +1 -0
  51. package/dist/components/AutoFocus.js +23 -0
  52. package/dist/components/AutoFocus.js.map +1 -0
  53. package/dist/components/ButtonFavorite.d.ts +40 -0
  54. package/dist/components/ButtonFavorite.d.ts.map +1 -0
  55. package/dist/components/ButtonFavorite.js +25 -0
  56. package/dist/components/ButtonFavorite.js.map +1 -0
  57. package/dist/components/Code.d.ts +2 -1
  58. package/dist/components/Code.d.ts.map +1 -1
  59. package/dist/components/Code.js +52 -24
  60. package/dist/components/Code.js.map +1 -1
  61. package/dist/components/ComponentNavigator.d.ts +38 -0
  62. package/dist/components/ComponentNavigator.d.ts.map +1 -0
  63. package/dist/components/ComponentNavigator.js +31 -0
  64. package/dist/components/ComponentNavigator.js.map +1 -0
  65. package/dist/components/Fading.d.ts +32 -0
  66. package/dist/components/Fading.d.ts.map +1 -0
  67. package/dist/components/Fading.js +33 -0
  68. package/dist/components/Fading.js.map +1 -0
  69. package/dist/components/FadingOverflow.d.ts +25 -0
  70. package/dist/components/FadingOverflow.d.ts.map +1 -1
  71. package/dist/components/FadingOverflow.js +16 -8
  72. package/dist/components/FadingOverflow.js.map +1 -1
  73. package/dist/components/FileDescription.d.ts +10 -0
  74. package/dist/components/FileDescription.d.ts.map +1 -0
  75. package/dist/components/FileDescription.js +84 -0
  76. package/dist/components/FileDescription.js.map +1 -0
  77. package/dist/components/HistoryList.d.ts +15 -0
  78. package/dist/components/HistoryList.d.ts.map +1 -1
  79. package/dist/components/HistoryList.js +6 -2
  80. package/dist/components/HistoryList.js.map +1 -1
  81. package/dist/components/ListResource.d.ts +29 -0
  82. package/dist/components/ListResource.d.ts.map +1 -0
  83. package/dist/components/ListResource.js +17 -0
  84. package/dist/components/ListResource.js.map +1 -0
  85. package/dist/components/Markdown.d.ts.map +1 -1
  86. package/dist/components/Markdown.js +2 -2
  87. package/dist/components/Markdown.js.map +1 -1
  88. package/dist/components/Modal.d.ts +9 -0
  89. package/dist/components/Modal.d.ts.map +1 -0
  90. package/dist/components/Modal.js +56 -0
  91. package/dist/components/Modal.js.map +1 -0
  92. package/dist/components/QuickStartButton.d.ts +2 -4
  93. package/dist/components/QuickStartButton.d.ts.map +1 -1
  94. package/dist/components/QuickStartButton.js +7 -39
  95. package/dist/components/QuickStartButton.js.map +1 -1
  96. package/dist/components/RightPanelContentList.d.ts +10 -0
  97. package/dist/components/RightPanelContentList.d.ts.map +1 -0
  98. package/dist/components/RightPanelContentList.js +7 -0
  99. package/dist/components/RightPanelContentList.js.map +1 -0
  100. package/dist/components/RightPanelForm.d.ts +3 -0
  101. package/dist/components/RightPanelForm.d.ts.map +1 -1
  102. package/dist/components/RightPanelForm.js +57 -17
  103. package/dist/components/RightPanelForm.js.map +1 -1
  104. package/dist/components/RightPanelTabs.d.ts +4 -4
  105. package/dist/components/RightPanelTabs.d.ts.map +1 -1
  106. package/dist/components/RightPanelTabs.js +7 -16
  107. package/dist/components/RightPanelTabs.js.map +1 -1
  108. package/dist/components/Selector/index.d.ts +54 -0
  109. package/dist/components/Selector/index.d.ts.map +1 -0
  110. package/dist/components/Selector/index.js +143 -0
  111. package/dist/components/Selector/index.js.map +1 -0
  112. package/dist/components/Selector/styled.d.ts +4 -0
  113. package/dist/components/Selector/styled.d.ts.map +1 -0
  114. package/dist/components/Selector/styled.js +157 -0
  115. package/dist/components/Selector/styled.js.map +1 -0
  116. package/dist/components/StackedBadge.d.ts +14 -0
  117. package/dist/components/StackedBadge.d.ts.map +1 -0
  118. package/dist/components/StackedBadge.js +56 -0
  119. package/dist/components/StackedBadge.js.map +1 -0
  120. package/dist/components/TabManager.d.ts +6 -0
  121. package/dist/components/TabManager.d.ts.map +1 -1
  122. package/dist/components/TabManager.js +16 -28
  123. package/dist/components/TabManager.js.map +1 -1
  124. package/dist/components/ToolBadge.d.ts +9 -0
  125. package/dist/components/ToolBadge.d.ts.map +1 -0
  126. package/dist/components/ToolBadge.js +34 -0
  127. package/dist/components/ToolBadge.js.map +1 -0
  128. package/dist/components/WorkspaceTabNavigator.d.ts +17 -0
  129. package/dist/components/WorkspaceTabNavigator.d.ts.map +1 -0
  130. package/dist/components/WorkspaceTabNavigator.js +93 -0
  131. package/dist/components/WorkspaceTabNavigator.js.map +1 -0
  132. package/dist/components/form/DescribedCheckboxGroup.d.ts +30 -2
  133. package/dist/components/form/DescribedCheckboxGroup.d.ts.map +1 -1
  134. package/dist/components/form/DescribedCheckboxGroup.js +75 -21
  135. package/dist/components/form/DescribedCheckboxGroup.js.map +1 -1
  136. package/dist/components/form/DescribedRadioGroup.d.ts +31 -2
  137. package/dist/components/form/DescribedRadioGroup.d.ts.map +1 -1
  138. package/dist/components/form/DescribedRadioGroup.js +65 -16
  139. package/dist/components/form/DescribedRadioGroup.js.map +1 -1
  140. package/dist/components/form/dictionary.d.ts +19 -0
  141. package/dist/components/form/dictionary.d.ts.map +1 -0
  142. package/dist/components/form/dictionary.js +19 -0
  143. package/dist/components/form/dictionary.js.map +1 -0
  144. package/dist/components/form/styled.d.ts.map +1 -1
  145. package/dist/components/form/styled.js +1 -2
  146. package/dist/components/form/styled.js.map +1 -1
  147. package/dist/components/form/types.d.ts +42 -0
  148. package/dist/components/form/types.d.ts.map +1 -1
  149. package/dist/context/AIWidgetProvider.d.ts +19 -0
  150. package/dist/context/AIWidgetProvider.d.ts.map +1 -1
  151. package/dist/context/AIWidgetProvider.js +19 -0
  152. package/dist/context/AIWidgetProvider.js.map +1 -1
  153. package/dist/context/hooks.d.ts +61 -4
  154. package/dist/context/hooks.d.ts.map +1 -1
  155. package/dist/context/hooks.js +83 -13
  156. package/dist/context/hooks.js.map +1 -1
  157. package/dist/features.d.ts +72 -10
  158. package/dist/features.d.ts.map +1 -1
  159. package/dist/features.js +23 -8
  160. package/dist/features.js.map +1 -1
  161. package/dist/hooks/midnight-update-view.d.ts +5 -0
  162. package/dist/hooks/midnight-update-view.d.ts.map +1 -0
  163. package/dist/hooks/midnight-update-view.js +30 -0
  164. package/dist/hooks/midnight-update-view.js.map +1 -0
  165. package/dist/index.d.ts +12 -0
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +7 -0
  168. package/dist/index.js.map +1 -1
  169. package/dist/layout.css +95 -28
  170. package/dist/regex.d.ts +3 -0
  171. package/dist/regex.d.ts.map +1 -0
  172. package/dist/regex.js +3 -0
  173. package/dist/regex.js.map +1 -0
  174. package/dist/right-panel/DefaultPanel.d.ts +3 -0
  175. package/dist/right-panel/DefaultPanel.d.ts.map +1 -1
  176. package/dist/right-panel/DefaultPanel.js +5 -4
  177. package/dist/right-panel/DefaultPanel.js.map +1 -1
  178. package/dist/right-panel/RightPanel.d.ts +3 -0
  179. package/dist/right-panel/RightPanel.d.ts.map +1 -1
  180. package/dist/right-panel/RightPanel.js +3 -0
  181. package/dist/right-panel/RightPanel.js.map +1 -1
  182. package/dist/right-panel/RightPanelProvider.d.ts +15 -0
  183. package/dist/right-panel/RightPanelProvider.d.ts.map +1 -1
  184. package/dist/right-panel/RightPanelProvider.js.map +1 -1
  185. package/dist/right-panel/constants.d.ts +2 -0
  186. package/dist/right-panel/constants.d.ts.map +1 -0
  187. package/dist/right-panel/constants.js +2 -0
  188. package/dist/right-panel/constants.js.map +1 -0
  189. package/dist/right-panel/hooks.d.ts +6 -0
  190. package/dist/right-panel/hooks.d.ts.map +1 -1
  191. package/dist/right-panel/hooks.js +8 -1
  192. package/dist/right-panel/hooks.js.map +1 -1
  193. package/dist/state/ChatEntry.d.ts +189 -15
  194. package/dist/state/ChatEntry.d.ts.map +1 -1
  195. package/dist/state/ChatEntry.js +29 -18
  196. package/dist/state/ChatEntry.js.map +1 -1
  197. package/dist/state/ChatState.d.ts +129 -15
  198. package/dist/state/ChatState.d.ts.map +1 -1
  199. package/dist/state/ChatState.js +87 -11
  200. package/dist/state/ChatState.js.map +1 -1
  201. package/dist/state/ChatTabsController.d.ts +50 -1
  202. package/dist/state/ChatTabsController.d.ts.map +1 -1
  203. package/dist/state/ChatTabsController.js +77 -8
  204. package/dist/state/ChatTabsController.js.map +1 -1
  205. package/dist/state/ObservableState.d.ts +15 -1
  206. package/dist/state/ObservableState.d.ts.map +1 -1
  207. package/dist/state/ObservableState.js +14 -0
  208. package/dist/state/ObservableState.js.map +1 -1
  209. package/dist/state/WidgetState.d.ts +62 -2
  210. package/dist/state/WidgetState.d.ts.map +1 -1
  211. package/dist/state/WidgetState.js +49 -2
  212. package/dist/state/WidgetState.js.map +1 -1
  213. package/dist/state/constants.d.ts +5 -0
  214. package/dist/state/constants.d.ts.map +1 -0
  215. package/dist/state/constants.js +10 -0
  216. package/dist/state/constants.js.map +1 -0
  217. package/dist/state/types.d.ts +10 -1
  218. package/dist/state/types.d.ts.map +1 -1
  219. package/dist/types.d.ts +20 -4
  220. package/dist/types.d.ts.map +1 -1
  221. package/dist/utils/chat.d.ts +11 -4
  222. package/dist/utils/chat.d.ts.map +1 -1
  223. package/dist/utils/chat.js +15 -12
  224. package/dist/utils/chat.js.map +1 -1
  225. package/dist/utils/check-is-trial.d.ts +2 -0
  226. package/dist/utils/check-is-trial.d.ts.map +1 -0
  227. package/dist/utils/check-is-trial.js +6 -0
  228. package/dist/utils/check-is-trial.js.map +1 -0
  229. package/dist/utils/copy-to-clipboard.d.ts +6 -0
  230. package/dist/utils/copy-to-clipboard.d.ts.map +1 -0
  231. package/dist/utils/copy-to-clipboard.js +30 -0
  232. package/dist/utils/copy-to-clipboard.js.map +1 -0
  233. package/dist/utils/date.d.ts +26 -2
  234. package/dist/utils/date.d.ts.map +1 -1
  235. package/dist/utils/date.js +28 -3
  236. package/dist/utils/date.js.map +1 -1
  237. package/dist/utils/download.d.ts +5 -0
  238. package/dist/utils/download.d.ts.map +1 -1
  239. package/dist/utils/download.js +5 -0
  240. package/dist/utils/download.js.map +1 -1
  241. package/dist/utils/error.d.ts +2 -0
  242. package/dist/utils/error.d.ts.map +1 -0
  243. package/dist/utils/error.js +54 -0
  244. package/dist/utils/error.js.map +1 -0
  245. package/dist/utils/knowledge-source.d.ts +12 -2
  246. package/dist/utils/knowledge-source.d.ts.map +1 -1
  247. package/dist/utils/knowledge-source.js +20 -6
  248. package/dist/utils/knowledge-source.js.map +1 -1
  249. package/dist/utils/planning-tool.d.ts +17 -0
  250. package/dist/utils/planning-tool.d.ts.map +1 -0
  251. package/dist/utils/planning-tool.js +32 -0
  252. package/dist/utils/planning-tool.js.map +1 -0
  253. package/dist/utils/programming-languages.d.ts +1 -0
  254. package/dist/utils/programming-languages.d.ts.map +1 -1
  255. package/dist/utils/programming-languages.js +11 -0
  256. package/dist/utils/programming-languages.js.map +1 -1
  257. package/dist/utils/string.d.ts +7 -0
  258. package/dist/utils/string.d.ts.map +1 -0
  259. package/dist/utils/string.js +11 -0
  260. package/dist/utils/string.js.map +1 -0
  261. package/dist/utils/tools.d.ts +23 -0
  262. package/dist/utils/tools.d.ts.map +1 -0
  263. package/dist/utils/tools.js +23 -0
  264. package/dist/utils/tools.js.map +1 -0
  265. package/dist/utils/update-tool-step.d.ts +3 -0
  266. package/dist/utils/update-tool-step.d.ts.map +1 -0
  267. package/dist/utils/update-tool-step.js +23 -0
  268. package/dist/utils/update-tool-step.js.map +1 -0
  269. package/dist/utils/upload/FileUpload.d.ts +21 -0
  270. package/dist/utils/upload/FileUpload.d.ts.map +1 -0
  271. package/dist/utils/upload/FileUpload.js +54 -0
  272. package/dist/utils/upload/FileUpload.js.map +1 -0
  273. package/dist/utils/upload/UploadManager.d.ts +42 -0
  274. package/dist/utils/upload/UploadManager.d.ts.map +1 -0
  275. package/dist/utils/upload/UploadManager.js +138 -0
  276. package/dist/utils/upload/UploadManager.js.map +1 -0
  277. package/dist/utils/upload/context.d.ts +15 -0
  278. package/dist/utils/upload/context.d.ts.map +1 -0
  279. package/dist/utils/upload/context.js +37 -0
  280. package/dist/utils/upload/context.js.map +1 -0
  281. package/dist/utils/upload/errors.d.ts +17 -0
  282. package/dist/utils/upload/errors.d.ts.map +1 -0
  283. package/dist/utils/upload/errors.js +27 -0
  284. package/dist/utils/upload/errors.js.map +1 -0
  285. package/dist/utils/upload/types.d.ts +7 -0
  286. package/dist/utils/upload/types.d.ts.map +1 -0
  287. package/dist/{components/Tooltip → utils/upload}/types.js.map +1 -1
  288. package/dist/utils/upload/use-paste-upload.d.ts +8 -0
  289. package/dist/utils/upload/use-paste-upload.d.ts.map +1 -0
  290. package/dist/utils/upload/use-paste-upload.js +19 -0
  291. package/dist/utils/upload/use-paste-upload.js.map +1 -0
  292. package/dist/utils/upload/utils.d.ts +4 -0
  293. package/dist/utils/upload/utils.d.ts.map +1 -0
  294. package/dist/utils/upload/utils.js +10 -0
  295. package/dist/utils/upload/utils.js.map +1 -0
  296. package/dist/utils/url.d.ts +2 -0
  297. package/dist/utils/url.d.ts.map +1 -0
  298. package/dist/utils/url.js +8 -0
  299. package/dist/utils/url.js.map +1 -0
  300. package/dist/views/Agents/AgentDescription.d.ts +4 -0
  301. package/dist/views/Agents/AgentDescription.d.ts.map +1 -0
  302. package/dist/views/Agents/AgentDescription.js +38 -0
  303. package/dist/views/Agents/AgentDescription.js.map +1 -0
  304. package/dist/views/Agents/AgentsPanel.d.ts +5 -0
  305. package/dist/views/Agents/AgentsPanel.d.ts.map +1 -0
  306. package/dist/views/Agents/AgentsPanel.js +45 -0
  307. package/dist/views/Agents/AgentsPanel.js.map +1 -0
  308. package/dist/views/Agents/AgentsTab.d.ts +11 -0
  309. package/dist/views/Agents/AgentsTab.d.ts.map +1 -0
  310. package/dist/views/Agents/AgentsTab.js +82 -0
  311. package/dist/views/Agents/AgentsTab.js.map +1 -0
  312. package/dist/views/Agents/dictionary.d.ts +2 -0
  313. package/dist/views/Agents/dictionary.d.ts.map +1 -0
  314. package/dist/views/Agents/dictionary.js +43 -0
  315. package/dist/views/Agents/dictionary.js.map +1 -0
  316. package/dist/views/Agents/index.d.ts +5 -0
  317. package/dist/views/Agents/index.d.ts.map +1 -0
  318. package/dist/views/Agents/index.js +21 -0
  319. package/dist/views/Agents/index.js.map +1 -0
  320. package/dist/views/Agents/styled.d.ts +3 -0
  321. package/dist/views/Agents/styled.d.ts.map +1 -0
  322. package/dist/views/Agents/styled.js +68 -0
  323. package/dist/views/Agents/styled.js.map +1 -0
  324. package/dist/views/Agents/useAgentFavorites.d.ts +8 -0
  325. package/dist/views/Agents/useAgentFavorites.d.ts.map +1 -0
  326. package/dist/views/Agents/useAgentFavorites.js +59 -0
  327. package/dist/views/Agents/useAgentFavorites.js.map +1 -0
  328. package/dist/views/Chat/AgentInfo.d.ts +5 -1
  329. package/dist/views/Chat/AgentInfo.d.ts.map +1 -1
  330. package/dist/views/Chat/AgentInfo.js +6 -5
  331. package/dist/views/Chat/AgentInfo.js.map +1 -1
  332. package/dist/views/Chat/ButtonExecutionDetail.d.ts +5 -0
  333. package/dist/views/Chat/ButtonExecutionDetail.d.ts.map +1 -0
  334. package/dist/views/Chat/ButtonExecutionDetail.js +34 -0
  335. package/dist/views/Chat/ButtonExecutionDetail.js.map +1 -0
  336. package/dist/views/Chat/ChatMessage.d.ts +57 -4
  337. package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
  338. package/dist/views/Chat/ChatMessage.js +167 -20
  339. package/dist/views/Chat/ChatMessage.js.map +1 -1
  340. package/dist/views/Chat/ChatMessages.d.ts +6 -2
  341. package/dist/views/Chat/ChatMessages.d.ts.map +1 -1
  342. package/dist/views/Chat/ChatMessages.js +5 -2
  343. package/dist/views/Chat/ChatMessages.js.map +1 -1
  344. package/dist/views/Chat/StepsList.d.ts +14 -0
  345. package/dist/views/Chat/StepsList.d.ts.map +1 -0
  346. package/dist/views/Chat/StepsList.js +192 -0
  347. package/dist/views/Chat/StepsList.js.map +1 -0
  348. package/dist/views/Chat/chat-scroll.d.ts +1 -1
  349. package/dist/views/Chat/chat-scroll.js +1 -1
  350. package/dist/views/Chat/events.d.ts +22 -0
  351. package/dist/views/Chat/events.d.ts.map +1 -0
  352. package/dist/views/Chat/events.js +67 -0
  353. package/dist/views/Chat/events.js.map +1 -0
  354. package/dist/views/Chat/index.d.ts +9 -2
  355. package/dist/views/Chat/index.d.ts.map +1 -1
  356. package/dist/views/Chat/index.js +5 -2
  357. package/dist/views/Chat/index.js.map +1 -1
  358. package/dist/views/Chat/styled.d.ts +3 -1
  359. package/dist/views/Chat/styled.d.ts.map +1 -1
  360. package/dist/views/Chat/styled.js +183 -31
  361. package/dist/views/Chat/styled.js.map +1 -1
  362. package/dist/views/ChatHistory/ChatHistoryPanel.d.ts +4 -4
  363. package/dist/views/ChatHistory/ChatHistoryPanel.d.ts.map +1 -1
  364. package/dist/views/ChatHistory/ChatHistoryPanel.js +6 -2
  365. package/dist/views/ChatHistory/ChatHistoryPanel.js.map +1 -1
  366. package/dist/views/ChatHistory/HistoryItem.d.ts +4 -3
  367. package/dist/views/ChatHistory/HistoryItem.d.ts.map +1 -1
  368. package/dist/views/ChatHistory/HistoryItem.js +16 -37
  369. package/dist/views/ChatHistory/HistoryItem.js.map +1 -1
  370. package/dist/views/ChatHistory/dictionary.d.ts +1 -1
  371. package/dist/views/ChatHistory/index.d.ts +4 -4
  372. package/dist/views/ChatHistory/index.d.ts.map +1 -1
  373. package/dist/views/ChatHistory/index.js +6 -3
  374. package/dist/views/ChatHistory/index.js.map +1 -1
  375. package/dist/views/ChatHistory/styled.d.ts.map +1 -1
  376. package/dist/views/ChatHistory/styled.js +3 -5
  377. package/dist/views/ChatHistory/styled.js.map +1 -1
  378. package/dist/views/ChatHistory/utils.d.ts +17 -2
  379. package/dist/views/ChatHistory/utils.d.ts.map +1 -1
  380. package/dist/views/ChatHistory/utils.js +140 -9
  381. package/dist/views/ChatHistory/utils.js.map +1 -1
  382. package/dist/views/ChatTabSelection.d.ts +6 -4
  383. package/dist/views/ChatTabSelection.d.ts.map +1 -1
  384. package/dist/views/ChatTabSelection.js +40 -15
  385. package/dist/views/ChatTabSelection.js.map +1 -1
  386. package/dist/views/Editor.d.ts +3 -0
  387. package/dist/views/Editor.d.ts.map +1 -1
  388. package/dist/views/Editor.js +26 -20
  389. package/dist/views/Editor.js.map +1 -1
  390. package/dist/views/Home/BuiltInAgent.d.ts +6 -0
  391. package/dist/views/Home/BuiltInAgent.d.ts.map +1 -0
  392. package/dist/views/Home/BuiltInAgent.js +37 -0
  393. package/dist/views/Home/BuiltInAgent.js.map +1 -0
  394. package/dist/views/Home/CustomAgent.d.ts +5 -0
  395. package/dist/views/Home/CustomAgent.d.ts.map +1 -0
  396. package/dist/views/Home/CustomAgent.js +23 -0
  397. package/dist/views/Home/CustomAgent.js.map +1 -0
  398. package/dist/views/Home/index.d.ts +8 -0
  399. package/dist/views/Home/index.d.ts.map +1 -0
  400. package/dist/views/Home/index.js +34 -0
  401. package/dist/views/Home/index.js.map +1 -0
  402. package/dist/views/Home/styled.d.ts +2 -0
  403. package/dist/views/Home/styled.d.ts.map +1 -0
  404. package/dist/views/Home/styled.js +74 -0
  405. package/dist/views/Home/styled.js.map +1 -0
  406. package/dist/views/Home/types.d.ts +16 -0
  407. package/dist/views/Home/types.d.ts.map +1 -0
  408. package/dist/views/Home/types.js +2 -0
  409. package/dist/views/Home/types.js.map +1 -0
  410. package/dist/views/KSDocument.d.ts +3 -0
  411. package/dist/views/KSDocument.d.ts.map +1 -1
  412. package/dist/views/KSDocument.js +7 -4
  413. package/dist/views/KSDocument.js.map +1 -1
  414. package/dist/views/KnowledgeSources.d.ts +12 -0
  415. package/dist/views/KnowledgeSources.d.ts.map +1 -1
  416. package/dist/views/KnowledgeSources.js +123 -33
  417. package/dist/views/KnowledgeSources.js.map +1 -1
  418. package/dist/views/MessageInput/AgentSelector.d.ts +5 -0
  419. package/dist/views/MessageInput/AgentSelector.d.ts.map +1 -0
  420. package/dist/views/MessageInput/AgentSelector.js +66 -0
  421. package/dist/views/MessageInput/AgentSelector.js.map +1 -0
  422. package/dist/views/MessageInput/ButtonAgent.d.ts +2 -0
  423. package/dist/views/MessageInput/ButtonAgent.d.ts.map +1 -0
  424. package/dist/views/MessageInput/ButtonAgent.js +35 -0
  425. package/dist/views/MessageInput/ButtonAgent.js.map +1 -0
  426. package/dist/views/MessageInput/ButtonBar.d.ts +13 -0
  427. package/dist/views/MessageInput/ButtonBar.d.ts.map +1 -0
  428. package/dist/views/MessageInput/ButtonBar.js +15 -0
  429. package/dist/views/MessageInput/ButtonBar.js.map +1 -0
  430. package/dist/views/MessageInput/ContextBar.d.ts +9 -0
  431. package/dist/views/MessageInput/ContextBar.d.ts.map +1 -0
  432. package/dist/views/MessageInput/ContextBar.js +51 -0
  433. package/dist/views/MessageInput/ContextBar.js.map +1 -0
  434. package/dist/views/MessageInput/ModelSwitcher/index.d.ts +2 -0
  435. package/dist/views/MessageInput/ModelSwitcher/index.d.ts.map +1 -0
  436. package/dist/views/MessageInput/ModelSwitcher/index.js +25 -0
  437. package/dist/views/MessageInput/ModelSwitcher/index.js.map +1 -0
  438. package/dist/views/MessageInput/ModelSwitcher/utils.d.ts +30 -0
  439. package/dist/views/MessageInput/ModelSwitcher/utils.d.ts.map +1 -0
  440. package/dist/views/MessageInput/ModelSwitcher/utils.js +91 -0
  441. package/dist/views/MessageInput/ModelSwitcher/utils.js.map +1 -0
  442. package/dist/views/MessageInput/QuickCommandSelector.d.ts +5 -0
  443. package/dist/views/MessageInput/QuickCommandSelector.d.ts.map +1 -0
  444. package/dist/views/MessageInput/QuickCommandSelector.js +104 -0
  445. package/dist/views/MessageInput/QuickCommandSelector.js.map +1 -0
  446. package/dist/views/MessageInput/SelectContent.d.ts +2 -0
  447. package/dist/views/MessageInput/SelectContent.d.ts.map +1 -0
  448. package/dist/views/MessageInput/SelectContent.js +84 -0
  449. package/dist/views/MessageInput/SelectContent.js.map +1 -0
  450. package/dist/views/MessageInput/UploadBar.d.ts +2 -0
  451. package/dist/views/MessageInput/UploadBar.d.ts.map +1 -0
  452. package/dist/views/MessageInput/UploadBar.js +74 -0
  453. package/dist/views/MessageInput/UploadBar.js.map +1 -0
  454. package/dist/views/MessageInput/UploadDragNDrop.d.ts +14 -0
  455. package/dist/views/MessageInput/UploadDragNDrop.d.ts.map +1 -0
  456. package/dist/views/MessageInput/UploadDragNDrop.js +51 -0
  457. package/dist/views/MessageInput/UploadDragNDrop.js.map +1 -0
  458. package/dist/views/MessageInput/chat-entry-history.d.ts +11 -0
  459. package/dist/views/MessageInput/chat-entry-history.d.ts.map +1 -0
  460. package/dist/views/MessageInput/chat-entry-history.js +78 -0
  461. package/dist/views/MessageInput/chat-entry-history.js.map +1 -0
  462. package/dist/views/MessageInput/dictionary.d.ts +1 -1
  463. package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
  464. package/dist/views/MessageInput/dictionary.js +52 -10
  465. package/dist/views/MessageInput/dictionary.js.map +1 -1
  466. package/dist/views/MessageInput/index.d.ts +9 -6
  467. package/dist/views/MessageInput/index.d.ts.map +1 -1
  468. package/dist/views/MessageInput/index.js +116 -20
  469. package/dist/views/MessageInput/index.js.map +1 -1
  470. package/dist/views/MessageInput/styled.d.ts +13 -1
  471. package/dist/views/MessageInput/styled.d.ts.map +1 -1
  472. package/dist/views/MessageInput/styled.js +223 -85
  473. package/dist/views/MessageInput/styled.js.map +1 -1
  474. package/dist/views/MinimizedHeader.d.ts +4 -0
  475. package/dist/views/MinimizedHeader.d.ts.map +1 -1
  476. package/dist/views/MinimizedHeader.js +9 -7
  477. package/dist/views/MinimizedHeader.js.map +1 -1
  478. package/dist/views/Resources.d.ts +2 -0
  479. package/dist/views/Resources.d.ts.map +1 -0
  480. package/dist/views/Resources.js +69 -0
  481. package/dist/views/Resources.js.map +1 -0
  482. package/dist/views/Stacks.d.ts +12 -0
  483. package/dist/views/Stacks.d.ts.map +1 -1
  484. package/dist/views/Stacks.js +117 -21
  485. package/dist/views/Stacks.js.map +1 -1
  486. package/dist/views/Steps/FlowChart/HandleGroup.d.ts +10 -0
  487. package/dist/views/Steps/FlowChart/HandleGroup.d.ts.map +1 -0
  488. package/dist/views/Steps/FlowChart/HandleGroup.js +4 -0
  489. package/dist/views/Steps/FlowChart/HandleGroup.js.map +1 -0
  490. package/dist/views/Steps/FlowChart/NodeDynamic.d.ts +15 -0
  491. package/dist/views/Steps/FlowChart/NodeDynamic.d.ts.map +1 -0
  492. package/dist/views/Steps/FlowChart/NodeDynamic.js +41 -0
  493. package/dist/views/Steps/FlowChart/NodeDynamic.js.map +1 -0
  494. package/dist/views/Steps/FlowChart/NodeStep.d.ts +10 -0
  495. package/dist/views/Steps/FlowChart/NodeStep.d.ts.map +1 -0
  496. package/dist/views/Steps/FlowChart/NodeStep.js +13 -0
  497. package/dist/views/Steps/FlowChart/NodeStep.js.map +1 -0
  498. package/dist/views/Steps/FlowChart/hooks.d.ts +7 -0
  499. package/dist/views/Steps/FlowChart/hooks.d.ts.map +1 -0
  500. package/dist/views/Steps/FlowChart/hooks.js +31 -0
  501. package/dist/views/Steps/FlowChart/hooks.js.map +1 -0
  502. package/dist/views/Steps/FlowChart/index.d.ts +12 -0
  503. package/dist/views/Steps/FlowChart/index.d.ts.map +1 -0
  504. package/dist/views/Steps/FlowChart/index.js +78 -0
  505. package/dist/views/Steps/FlowChart/index.js.map +1 -0
  506. package/dist/views/Steps/FlowChart/layout.d.ts +8 -0
  507. package/dist/views/Steps/FlowChart/layout.d.ts.map +1 -0
  508. package/dist/views/Steps/FlowChart/layout.js +59 -0
  509. package/dist/views/Steps/FlowChart/layout.js.map +1 -0
  510. package/dist/views/Steps/FlowChart/styled.d.ts +14 -0
  511. package/dist/views/Steps/FlowChart/styled.d.ts.map +1 -0
  512. package/dist/views/Steps/FlowChart/styled.js +156 -0
  513. package/dist/views/Steps/FlowChart/styled.js.map +1 -0
  514. package/dist/views/Steps/FlowChart/types.d.ts +25 -0
  515. package/dist/views/Steps/FlowChart/types.d.ts.map +1 -0
  516. package/dist/views/Steps/FlowChart/types.js +2 -0
  517. package/dist/views/Steps/FlowChart/types.js.map +1 -0
  518. package/dist/views/Steps/StepModal.d.ts +10 -0
  519. package/dist/views/Steps/StepModal.d.ts.map +1 -0
  520. package/dist/views/Steps/StepModal.js +139 -0
  521. package/dist/views/Steps/StepModal.js.map +1 -0
  522. package/dist/views/Steps/StepsPanel.d.ts +6 -0
  523. package/dist/views/Steps/StepsPanel.d.ts.map +1 -0
  524. package/dist/views/Steps/StepsPanel.js +18 -0
  525. package/dist/views/Steps/StepsPanel.js.map +1 -0
  526. package/dist/views/Steps/dictionary.d.ts +43 -0
  527. package/dist/views/Steps/dictionary.d.ts.map +1 -0
  528. package/dist/views/Steps/dictionary.js +45 -0
  529. package/dist/views/Steps/dictionary.js.map +1 -0
  530. package/dist/views/Steps/index.d.ts +5 -0
  531. package/dist/views/Steps/index.d.ts.map +1 -0
  532. package/dist/views/Steps/index.js +30 -0
  533. package/dist/views/Steps/index.js.map +1 -0
  534. package/dist/views/Steps/utils.d.ts +7 -0
  535. package/dist/views/Steps/utils.d.ts.map +1 -0
  536. package/dist/views/Steps/utils.js +32 -0
  537. package/dist/views/Steps/utils.js.map +1 -0
  538. package/dist/views/Tools.d.ts +2 -0
  539. package/dist/views/Tools.d.ts.map +1 -0
  540. package/dist/views/Tools.js +53 -0
  541. package/dist/views/Tools.js.map +1 -0
  542. package/dist/views/Workspaces/WorkspacesTab.d.ts +20 -0
  543. package/dist/views/Workspaces/WorkspacesTab.d.ts.map +1 -0
  544. package/dist/views/Workspaces/WorkspacesTab.js +61 -0
  545. package/dist/views/Workspaces/WorkspacesTab.js.map +1 -0
  546. package/dist/views/Workspaces/index.d.ts +5 -0
  547. package/dist/views/Workspaces/index.d.ts.map +1 -0
  548. package/dist/views/Workspaces/index.js +69 -0
  549. package/dist/views/Workspaces/index.js.map +1 -0
  550. package/package.dev.json +3 -0
  551. package/package.json +20 -13
  552. package/package.stg.json +4 -0
  553. package/scripts/package-override.js +105 -0
  554. package/src/AbortedError.ts +7 -0
  555. package/src/StackspotAIWidget.tsx +96 -27
  556. package/src/app-metadata.json +171 -0
  557. package/src/assets/placeholder.png +0 -0
  558. package/src/chat-interceptors/CustomInputs.ts +83 -0
  559. package/src/chat-interceptors/quick-command-questions.ts +25 -0
  560. package/src/chat-interceptors/quick-commands.ts +503 -7
  561. package/src/chat-interceptors/send-message.ts +256 -28
  562. package/src/components/AdaptiveTextArea.tsx +36 -11
  563. package/src/components/AgentCard/AgentCardCreate.tsx +42 -0
  564. package/src/components/AgentCard/dictionary.ts +25 -0
  565. package/src/components/AgentCard/index.tsx +82 -0
  566. package/src/components/AnimatedOpacity.tsx +55 -0
  567. package/src/components/AutoFocus.tsx +42 -0
  568. package/src/components/ButtonFavorite.tsx +78 -0
  569. package/src/components/Code.tsx +94 -59
  570. package/src/components/ComponentNavigator.tsx +99 -0
  571. package/src/components/Fading.tsx +66 -0
  572. package/src/components/FadingOverflow.tsx +39 -12
  573. package/src/components/FileDescription.tsx +118 -0
  574. package/src/components/HistoryList.tsx +19 -2
  575. package/src/components/ListResource.tsx +60 -0
  576. package/src/components/Markdown.tsx +2 -1
  577. package/src/components/Modal.tsx +85 -0
  578. package/src/components/QuickStartButton.tsx +15 -47
  579. package/src/components/RightPanelContentList.tsx +15 -0
  580. package/src/components/RightPanelForm.tsx +64 -22
  581. package/src/components/RightPanelTabs.tsx +7 -32
  582. package/src/components/Selector/index.tsx +312 -0
  583. package/src/components/Selector/styled.ts +158 -0
  584. package/src/components/StackedBadge.tsx +77 -0
  585. package/src/components/TabManager.tsx +36 -36
  586. package/src/components/ToolBadge.tsx +67 -0
  587. package/src/components/WorkspaceTabNavigator.tsx +172 -0
  588. package/src/components/form/DescribedCheckboxGroup.tsx +135 -33
  589. package/src/components/form/DescribedRadioGroup.tsx +136 -32
  590. package/src/components/form/dictionary.ts +18 -0
  591. package/src/components/form/styled.ts +1 -2
  592. package/src/components/form/types.ts +45 -1
  593. package/src/context/AIWidgetProvider.tsx +19 -0
  594. package/src/context/hooks.ts +86 -16
  595. package/src/features.ts +90 -16
  596. package/src/hooks/midnight-update-view.ts +36 -0
  597. package/src/images.d.ts +5 -0
  598. package/src/index.ts +16 -0
  599. package/src/layout.css +95 -28
  600. package/src/regex.ts +2 -0
  601. package/src/right-panel/DefaultPanel.tsx +7 -7
  602. package/src/right-panel/RightPanel.tsx +3 -0
  603. package/src/right-panel/RightPanelProvider.tsx +15 -0
  604. package/src/right-panel/constants.ts +1 -0
  605. package/src/right-panel/hooks.tsx +8 -1
  606. package/src/state/ChatEntry.ts +194 -27
  607. package/src/state/ChatState.ts +172 -17
  608. package/src/state/ChatTabsController.ts +78 -8
  609. package/src/state/ObservableState.ts +15 -1
  610. package/src/state/WidgetState.ts +86 -3
  611. package/src/state/constants.ts +13 -0
  612. package/src/state/types.ts +12 -1
  613. package/src/types.ts +21 -4
  614. package/src/utils/chat.ts +17 -15
  615. package/src/utils/check-is-trial.ts +6 -0
  616. package/src/utils/copy-to-clipboard.ts +29 -0
  617. package/src/utils/date.ts +28 -4
  618. package/src/utils/download.ts +5 -0
  619. package/src/utils/error.ts +56 -0
  620. package/src/utils/knowledge-source.ts +22 -8
  621. package/src/utils/planning-tool.ts +41 -0
  622. package/src/utils/programming-languages.ts +12 -0
  623. package/src/utils/string.ts +10 -0
  624. package/src/utils/tools.ts +32 -0
  625. package/src/utils/update-tool-step.tsx +27 -0
  626. package/src/utils/upload/FileUpload.ts +63 -0
  627. package/src/utils/upload/UploadManager.ts +156 -0
  628. package/src/utils/upload/context.tsx +44 -0
  629. package/src/utils/upload/errors.ts +34 -0
  630. package/src/utils/upload/types.ts +7 -0
  631. package/src/utils/upload/use-paste-upload.tsx +30 -0
  632. package/src/utils/upload/utils.ts +12 -0
  633. package/src/utils/url.ts +8 -0
  634. package/src/views/Agents/AgentDescription.tsx +107 -0
  635. package/src/views/Agents/AgentsPanel.tsx +57 -0
  636. package/src/views/Agents/AgentsTab.tsx +126 -0
  637. package/src/views/Agents/dictionary.ts +45 -0
  638. package/src/views/Agents/index.tsx +26 -0
  639. package/src/views/Agents/styled.ts +69 -0
  640. package/src/views/Agents/useAgentFavorites.ts +63 -0
  641. package/src/views/Chat/AgentInfo.tsx +13 -8
  642. package/src/views/Chat/ButtonExecutionDetail.tsx +46 -0
  643. package/src/views/Chat/ChatMessage.tsx +472 -56
  644. package/src/views/Chat/ChatMessages.tsx +18 -4
  645. package/src/views/Chat/StepsList.tsx +394 -0
  646. package/src/views/Chat/chat-scroll.ts +1 -1
  647. package/src/views/Chat/events.ts +71 -0
  648. package/src/views/Chat/index.tsx +17 -3
  649. package/src/views/Chat/styled.ts +189 -32
  650. package/src/views/ChatHistory/ChatHistoryPanel.tsx +8 -5
  651. package/src/views/ChatHistory/HistoryItem.tsx +23 -44
  652. package/src/views/ChatHistory/index.tsx +6 -4
  653. package/src/views/ChatHistory/styled.ts +3 -5
  654. package/src/views/ChatHistory/utils.ts +144 -11
  655. package/src/views/ChatTabSelection.tsx +47 -20
  656. package/src/views/Editor.tsx +31 -22
  657. package/src/views/Home/BuiltInAgent.tsx +67 -0
  658. package/src/views/Home/CustomAgent.tsx +36 -0
  659. package/src/views/Home/index.tsx +48 -0
  660. package/src/views/Home/styled.ts +74 -0
  661. package/src/views/Home/types.ts +16 -0
  662. package/src/views/KSDocument.tsx +11 -8
  663. package/src/views/KnowledgeSources.tsx +169 -62
  664. package/src/views/MessageInput/AgentSelector.tsx +92 -0
  665. package/src/views/MessageInput/ButtonAgent.tsx +73 -0
  666. package/src/views/MessageInput/ButtonBar.tsx +57 -0
  667. package/src/views/MessageInput/ContextBar.tsx +117 -0
  668. package/src/views/MessageInput/ModelSwitcher/index.tsx +69 -0
  669. package/src/views/MessageInput/ModelSwitcher/utils.tsx +143 -0
  670. package/src/views/MessageInput/QuickCommandSelector.tsx +137 -0
  671. package/src/views/MessageInput/SelectContent.tsx +99 -0
  672. package/src/views/MessageInput/UploadBar.tsx +107 -0
  673. package/src/views/MessageInput/UploadDragNDrop.tsx +79 -0
  674. package/src/views/MessageInput/chat-entry-history.ts +97 -0
  675. package/src/views/MessageInput/dictionary.ts +52 -10
  676. package/src/views/MessageInput/index.tsx +158 -51
  677. package/src/views/MessageInput/styled.ts +226 -85
  678. package/src/views/MinimizedHeader.tsx +11 -10
  679. package/src/views/Resources.tsx +108 -0
  680. package/src/views/Stacks.tsx +152 -39
  681. package/src/views/Steps/FlowChart/HandleGroup.tsx +14 -0
  682. package/src/views/Steps/FlowChart/NodeDynamic.tsx +97 -0
  683. package/src/views/Steps/FlowChart/NodeStep.tsx +49 -0
  684. package/src/views/Steps/FlowChart/hooks.ts +41 -0
  685. package/src/views/Steps/FlowChart/index.tsx +111 -0
  686. package/src/views/Steps/FlowChart/layout.ts +73 -0
  687. package/src/views/Steps/FlowChart/styled.ts +157 -0
  688. package/src/views/Steps/FlowChart/types.ts +28 -0
  689. package/src/views/Steps/StepModal.tsx +233 -0
  690. package/src/views/Steps/StepsPanel.tsx +31 -0
  691. package/src/views/Steps/dictionary.ts +48 -0
  692. package/src/views/Steps/index.tsx +36 -0
  693. package/src/views/Steps/utils.tsx +34 -0
  694. package/src/views/Tools.tsx +77 -0
  695. package/src/views/Workspaces/WorkspacesTab.tsx +116 -0
  696. package/src/views/Workspaces/index.tsx +78 -0
  697. package/tsconfig.json +8 -3
  698. package/dist/components/Accordion.d.ts +0 -10
  699. package/dist/components/Accordion.d.ts.map +0 -1
  700. package/dist/components/Accordion.js +0 -46
  701. package/dist/components/Accordion.js.map +0 -1
  702. package/dist/components/Editor.d.ts +0 -9
  703. package/dist/components/Editor.d.ts.map +0 -1
  704. package/dist/components/Editor.js +0 -2
  705. package/dist/components/Editor.js.map +0 -1
  706. package/dist/components/FallbackBoundary/ErrorBoundary.d.ts +0 -30
  707. package/dist/components/FallbackBoundary/ErrorBoundary.d.ts.map +0 -1
  708. package/dist/components/FallbackBoundary/ErrorBoundary.js +0 -38
  709. package/dist/components/FallbackBoundary/ErrorBoundary.js.map +0 -1
  710. package/dist/components/FallbackBoundary/Loading.d.ts +0 -2
  711. package/dist/components/FallbackBoundary/Loading.d.ts.map +0 -1
  712. package/dist/components/FallbackBoundary/Loading.js +0 -12
  713. package/dist/components/FallbackBoundary/Loading.js.map +0 -1
  714. package/dist/components/FallbackBoundary/index.d.ts +0 -6
  715. package/dist/components/FallbackBoundary/index.d.ts.map +0 -1
  716. package/dist/components/FallbackBoundary/index.js +0 -9
  717. package/dist/components/FallbackBoundary/index.js.map +0 -1
  718. package/dist/components/IconInput.d.ts +0 -7
  719. package/dist/components/IconInput.d.ts.map +0 -1
  720. package/dist/components/IconInput.js +0 -58
  721. package/dist/components/IconInput.js.map +0 -1
  722. package/dist/components/OverlayMenu.d.ts +0 -10
  723. package/dist/components/OverlayMenu.d.ts.map +0 -1
  724. package/dist/components/OverlayMenu.js +0 -58
  725. package/dist/components/OverlayMenu.js.map +0 -1
  726. package/dist/components/ProgressBar.d.ts +0 -11
  727. package/dist/components/ProgressBar.d.ts.map +0 -1
  728. package/dist/components/ProgressBar.js +0 -126
  729. package/dist/components/ProgressBar.js.map +0 -1
  730. package/dist/components/Tooltip/Tooltip.d.ts +0 -12
  731. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  732. package/dist/components/Tooltip/Tooltip.js +0 -17
  733. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  734. package/dist/components/Tooltip/TooltipAPI.d.ts +0 -13
  735. package/dist/components/Tooltip/TooltipAPI.d.ts.map +0 -1
  736. package/dist/components/Tooltip/TooltipAPI.js +0 -90
  737. package/dist/components/Tooltip/TooltipAPI.js.map +0 -1
  738. package/dist/components/Tooltip/context.d.ts +0 -5
  739. package/dist/components/Tooltip/context.d.ts.map +0 -1
  740. package/dist/components/Tooltip/context.js +0 -18
  741. package/dist/components/Tooltip/context.js.map +0 -1
  742. package/dist/components/Tooltip/index.d.ts +0 -3
  743. package/dist/components/Tooltip/index.d.ts.map +0 -1
  744. package/dist/components/Tooltip/index.js +0 -3
  745. package/dist/components/Tooltip/index.js.map +0 -1
  746. package/dist/components/Tooltip/style.d.ts +0 -4
  747. package/dist/components/Tooltip/style.d.ts.map +0 -1
  748. package/dist/components/Tooltip/style.js +0 -22
  749. package/dist/components/Tooltip/style.js.map +0 -1
  750. package/dist/components/Tooltip/types.d.ts +0 -14
  751. package/dist/components/Tooltip/types.d.ts.map +0 -1
  752. package/dist/views/Agents.d.ts +0 -2
  753. package/dist/views/Agents.d.ts.map +0 -1
  754. package/dist/views/Agents.js +0 -143
  755. package/dist/views/Agents.js.map +0 -1
  756. package/dist/views/Home.d.ts +0 -6
  757. package/dist/views/Home.d.ts.map +0 -1
  758. package/dist/views/Home.js +0 -68
  759. package/dist/views/Home.js.map +0 -1
  760. package/dist/views/MessageInput/ButtonGroup.d.ts +0 -12
  761. package/dist/views/MessageInput/ButtonGroup.d.ts.map +0 -1
  762. package/dist/views/MessageInput/ButtonGroup.js +0 -24
  763. package/dist/views/MessageInput/ButtonGroup.js.map +0 -1
  764. package/dist/views/MessageInput/InfoBar.d.ts +0 -2
  765. package/dist/views/MessageInput/InfoBar.d.ts.map +0 -1
  766. package/dist/views/MessageInput/InfoBar.js +0 -35
  767. package/dist/views/MessageInput/InfoBar.js.map +0 -1
  768. package/dist/views/Workspaces.d.ts +0 -2
  769. package/dist/views/Workspaces.d.ts.map +0 -1
  770. package/dist/views/Workspaces.js +0 -62
  771. package/dist/views/Workspaces.js.map +0 -1
  772. package/src/components/Accordion.tsx +0 -64
  773. package/src/components/Editor.tsx +0 -12
  774. package/src/components/FallbackBoundary/ErrorBoundary.tsx +0 -48
  775. package/src/components/FallbackBoundary/Loading.tsx +0 -14
  776. package/src/components/FallbackBoundary/index.tsx +0 -15
  777. package/src/components/IconInput.tsx +0 -70
  778. package/src/components/OverlayMenu.tsx +0 -77
  779. package/src/components/ProgressBar.tsx +0 -153
  780. package/src/components/Tooltip/Tooltip.tsx +0 -36
  781. package/src/components/Tooltip/TooltipAPI.ts +0 -84
  782. package/src/components/Tooltip/context.tsx +0 -24
  783. package/src/components/Tooltip/index.ts +0 -2
  784. package/src/components/Tooltip/style.tsx +0 -24
  785. package/src/components/Tooltip/types.ts +0 -15
  786. package/src/views/Agents.tsx +0 -200
  787. package/src/views/Home.tsx +0 -109
  788. package/src/views/MessageInput/ButtonGroup.tsx +0 -91
  789. package/src/views/MessageInput/InfoBar.tsx +0 -82
  790. package/src/views/Workspaces.tsx +0 -92
  791. /package/dist/{components/Tooltip → utils/upload}/types.js +0 -0
@@ -1,6 +1,7 @@
1
1
  import { useContext, useMemo } from 'react'
2
2
  import { DefaultPanel } from './DefaultPanel'
3
3
  import { RightPanelContext } from './RightPanelProvider'
4
+ import { panelAnimationTime } from './constants'
4
5
 
5
6
  interface RightPanelOptions {
6
7
  title: React.ReactNode,
@@ -8,11 +9,17 @@ interface RightPanelOptions {
8
9
  onClose?: () => void,
9
10
  }
10
11
 
12
+ /**
13
+ * @returns teh current content of the right panel
14
+ */
11
15
  export function useRightPanelContent() {
12
16
  const { content } = useContext(RightPanelContext)
13
17
  return content
14
18
  }
15
19
 
20
+ /**
21
+ * Opens, closes or checks the visibility of the right panel.
22
+ */
16
23
  export function useRightPanel() {
17
24
  const ctx = useContext(RightPanelContext)
18
25
  const { panel, chatWindow, setContent } = ctx
@@ -35,7 +42,7 @@ export function useRightPanel() {
35
42
  ctx.onCloseNext.current?.()
36
43
  setTimeout(() => {
37
44
  setContent(null)
38
- }, 300)
45
+ }, panelAnimationTime)
39
46
  }
40
47
 
41
48
  function isOpen() {
@@ -1,13 +1,26 @@
1
+ import { ChatStep, HypothesisPMAgent, OpportunitiesPMAgent, PrfaqPMAgent } from '@stack-spot/portal-network'
2
+ import { ColorPaletteName, ColorSchemeName } from '@stack-spot/portal-theme'
1
3
  import { pull } from 'lodash'
2
- import { LabeledWithImage } from './types'
4
+ import { LabeledAgent } from './types'
5
+
6
+ export interface ActionDataClick {
7
+ name?: string,
8
+ value?: string[],
9
+ }
3
10
 
4
11
  export interface SerializableAction {
12
+ /**
13
+ * The text for the button or anchor.
14
+ */
5
15
  title: string,
16
+ /**
17
+ * Links open new tabs with urls, while commands send text commands in the chat as if they were written by the user.
18
+ */
6
19
  type: 'link' | 'command',
7
20
  /**
8
- * The URL if the action is a link or a chat command otherwise (/command).
21
+ * The URL if the action is a link. The content of the user message otherwise.
9
22
  */
10
- exec: string,
23
+ exec?: string,
11
24
  }
12
25
 
13
26
  export interface ChatAction extends SerializableAction {
@@ -15,6 +28,26 @@ export interface ChatAction extends SerializableAction {
15
28
  * @default primary
16
29
  */
17
30
  appearance?: 'primary' | 'secondary',
31
+ /**
32
+ * @default inverse
33
+ */
34
+ colorScheme?: ColorSchemeName,
35
+ /**
36
+ * @default false
37
+ */
38
+ hideWhenNotLast?: boolean,
39
+ /**
40
+ * @default false
41
+ */
42
+ disabled?: boolean,
43
+ /**
44
+ * @default button
45
+ */
46
+ buttonType?: 'submit' | 'button',
47
+ /**
48
+ * @default lg
49
+ */
50
+ size?: 'lg' | 'md' | 'sm',
18
51
  }
19
52
 
20
53
  export interface KnowledgeSource {
@@ -24,55 +57,192 @@ export interface KnowledgeSource {
24
57
  documentId: string,
25
58
  }
26
59
 
60
+ export interface ChatTool {
61
+ id: string,
62
+ image?: string,
63
+ name: string,
64
+ description: string,
65
+ }
66
+
67
+ export interface UploadedFile {
68
+ id: string,
69
+ name: string,
70
+ image?: string,
71
+ }
72
+
27
73
  export interface TextChatEntry {
28
- type: 'text' | 'md',
74
+ /**
75
+ * "text" for simple unformatted paragraphs. "md" for markdown.
76
+ * "input-text" for text inputs, 'input-radio' and "input-checkbox" for radio and checkbox inputs,
77
+ * "input-phone" for phone formatted inputs and "button-list" for a list of buttons in which only one is selected
78
+ */
79
+ type: 'text' | 'md' | 'input-text' | 'input-radio' | 'button-list' | 'input-checkbox' | 'input-phone',
80
+ /**
81
+ * If the message was typed by the AI agent (bot), the user or the system (not currently in use).
82
+ */
29
83
  agentType: 'bot' | 'user' | 'system',
30
- // image?: string,
84
+ /**
85
+ * A set of buttons to go after the message.
86
+ */
31
87
  actions?: ChatAction[],
32
- subtitle?: string,
88
+ /**
89
+ * The content of the message.
90
+ */
33
91
  content: string,
92
+ /**
93
+ * The actual data to send as a message. This is the "content" if not provided.
94
+ *
95
+ * Useful for displaying a text in the chat, via "content", but sending something different to the backend.
96
+ *
97
+ * Serialization: if none of your interceptors return false, this will be converted to a JSON in the last interceptor (sendMessage).
98
+ *
99
+ * Attention: this is ignored by quick commands, which will always use "content".
100
+ */
101
+ data?: any,
102
+ /**
103
+ * A content that is not shown to the user, it is used only to share data.
104
+ *
105
+ * This is used solely by the onboarding feature (checkboxes and radio button), implemented in the AI Portal. Maybe it shouldn't be
106
+ * implemented here. This needs a review (fixme).
107
+ *
108
+ * This has been implemented because the message rendered is different than the message we wanted to send to the backend.
109
+ *
110
+ * @deprecated prefer "data" instead.
111
+ */
112
+ hiddenContent?: string[],
113
+ /**
114
+ * The knowledge sources used to create the message.
115
+ */
34
116
  knowledgeSources?: KnowledgeSource[],
117
+ /**
118
+ * The date and time of the message. ISO string.
119
+ */
35
120
  updated?: string,
36
- agent?: LabeledWithImage,
121
+ /**
122
+ * The agent who wrote the message. Undefined for the agentType is "user".
123
+ */
124
+ agent?: LabeledAgent,
125
+ /**
126
+ * The unique identifier of the message.
127
+ */
37
128
  messageId?: string,
129
+ /**
130
+ * If this is set, only an error message is rendered.
131
+ */
38
132
  error?: string,
39
- // customInput?: CustomInputResponse,
133
+ /**
134
+ * A series of badges to display before the content.
135
+ */
136
+ badges?: { color?: ColorPaletteName, label: string }[],
137
+ /**
138
+ * Whether or not to show this chat entry as a card.
139
+ */
140
+ card?: boolean,
141
+ /**
142
+ * This entry may contain steps. If so, specify them in this array.
143
+ */
144
+ steps?: ChatStep[],
145
+ /**
146
+ * If any tool was used to generate the response, its id is returned in this list.
147
+ */
148
+ tools?: string[],
149
+ /**
150
+ * If opportunities exists in pm agent, its send in this list.
151
+ */
152
+ opportunities?: OpportunitiesPMAgent[],
153
+ /**
154
+ * If hypothesis exists in pm agent, its send in this list.
155
+ */
156
+ hypothesis?: HypothesisPMAgent[],
157
+ /**
158
+ * If prfaq exists in pm agent, its send in this object.
159
+ */
160
+ prfaq?: PrfaqPMAgent,
161
+ /*
162
+ * Options for radio, checkbox or button type.
163
+ */
164
+ options?: { color?: ColorSchemeName, label: string, value?: string, hasInput?: boolean }[],
165
+ /**
166
+ * Name to be used in input type fields.
167
+ */
168
+ name?: string,
169
+ /**
170
+ * Whether or not a input field is required.
171
+ */
172
+ required?: boolean,
173
+ /**
174
+ * The validations of input fields.
175
+ */
176
+ validations?: {
177
+ minLength?: number,
178
+ maxLength?: number,
179
+ pattern?: string,
180
+ },
181
+ /**
182
+ * Valid for input types.
183
+ */
184
+ initialValue?: string[],
185
+ /**
186
+ * If this chat entry contains any uploaded file, these are the files being uploaded along the message.
187
+ */
188
+ upload?: UploadedFile[],
189
+ /**
190
+ * True if the entry is done streaming, false otherwise. Undefined may be used when streaming info is not available.
191
+ */
192
+ done?: boolean,
193
+ /**
194
+ * True if, at some point, this entry had a planning stage (related to tools).
195
+ */
196
+ hasPlanning?: boolean,
40
197
  }
41
198
 
42
199
  type ChatEntryListener = (value: TextChatEntry) => void
43
200
 
201
+ // this id is unique for each message and used for rendering. The `messageId`, which comes from the backend, is not always available and,
202
+ // therefore, can't be used for this purpose.
44
203
  let nextId = 0
45
204
 
205
+ /**
206
+ * A message (entry) in the chat.
207
+ */
46
208
  export class ChatEntry {
47
209
  readonly id: number
48
210
  private value: TextChatEntry
49
- private streamFinished: boolean
50
211
  private listeners: ChatEntryListener[] = []
51
- abort: () => void
52
212
 
53
213
  /**
54
214
  * @param value the value of the entry.
55
- * @param isStreamed whether or not this entry is streamed. Defaults to false.
56
- * @param abort an abort function to cancel the transmission of this chat entry. Specially useful for canceling streamings.
57
215
  */
58
- constructor(value: TextChatEntry, isStreamed = false, abort = () => {}) {
216
+ constructor(value: TextChatEntry) {
59
217
  this.id = nextId++
60
218
  this.value = value
61
- this.streamFinished = !isStreamed
62
- this.abort = abort
63
219
  }
64
220
 
65
- static createUserEntry(content: string, isMd = false) {
221
+ /**
222
+ * Utility function to create a user entry.
223
+ * @param content the message's content.
224
+ * @param isMd whether or not this should be rendered as markdown.
225
+ * @param hiddenContent the message's content.
226
+ * @returns a new ChatEntry.
227
+ */
228
+ static createUserEntry(content: string, isMd = false, fieldName?: string, hiddenContent?: string[], data?: any) {
66
229
  return new ChatEntry({
67
230
  agentType: 'user',
68
231
  type: isMd ? 'md' : 'text',
69
232
  content,
233
+ name: fieldName,
234
+ hiddenContent,
235
+ data,
70
236
  updated: new Date().toISOString(),
71
237
  })
72
238
  }
73
239
 
74
- static createStreamedBotEntry(abort: () => void) {
75
- return new ChatEntry({ agentType: 'bot', type: 'md', content: '' }, true, abort)
240
+ /**
241
+ * Utility function to create a streamed entry from the AI agent.
242
+ * @returns a new ChatEntry.
243
+ */
244
+ static createStreamedBotEntry() {
245
+ return new ChatEntry({ agentType: 'bot', type: 'md', content: '', done: false })
76
246
  }
77
247
 
78
248
  setValue(value: TextChatEntry) {
@@ -84,16 +254,13 @@ export class ChatEntry {
84
254
  return this.value
85
255
  }
86
256
 
87
- finish() {
88
- this.streamFinished = true
89
- }
90
-
91
- hasFinished() {
92
- return this.streamFinished
93
- }
94
-
257
+ /**
258
+ * Watches the value of this ChatEntry.
259
+ * @param listener a function to call whenever the value changes.
260
+ * @returns a function that removes the listener.
261
+ */
95
262
  onChange(listener: ChatEntryListener) {
96
- if (!this.streamFinished) this.listeners.push(listener)
263
+ this.listeners.push(listener)
97
264
  return () => {
98
265
  pull(this.listeners, listener)
99
266
  }
@@ -1,15 +1,45 @@
1
1
  import { dropRight, last, pull } from 'lodash'
2
+ import { ulid } from 'ulid'
3
+ import { AbortedError } from '../AbortedError'
4
+ import { ChatFeatures, getFeaturesWithDefaults } from '../features'
5
+ import { UploadManager } from '../utils/upload/UploadManager'
2
6
  import { ChatEntry } from './ChatEntry'
7
+ import { acceptedFileTypes, maxFileSize, maxUploadItems } from './constants'
3
8
  import { ObservableState } from './ObservableState'
4
- import { Labeled, LabeledWithImage } from './types'
9
+ import { Labeled, LabeledAgent } from './types'
5
10
 
6
- export interface ChatProperties {
11
+ export interface ChatPropertiesWithOptionalFeatures {
12
+ /**
13
+ * The name of the chat.
14
+ */
7
15
  label: string,
8
- agent?: LabeledWithImage & { builtIn: boolean },
16
+ /**
17
+ * The current AI agent.
18
+ */
19
+ agent?: LabeledAgent,
20
+ /**
21
+ * The current workspace.
22
+ */
9
23
  workspace?: Labeled,
24
+ /**
25
+ * The current stack.
26
+ */
10
27
  stack?: Labeled,
28
+ /**
29
+ * The current knowledge sources.
30
+ */
11
31
  knowledgeSources?: Labeled[],
32
+ /**
33
+ * Whether or not the chat is in a loading state.
34
+ */
12
35
  isLoading?: boolean,
36
+ /**
37
+ * Whether or not the chat is planning.
38
+ */
39
+ isPlaning?: boolean,
40
+ /**
41
+ * The value of the next message. This is the value of the text typed in the textarea below the chat.
42
+ */
13
43
  nextMessage?: string,
14
44
  /**
15
45
  * The current code in the editor.
@@ -20,41 +50,102 @@ export interface ChatProperties {
20
50
  */
21
51
  codeLanguage?: string,
22
52
  /**
23
- * The current selection in the editor
53
+ * The current selection in the editor.
24
54
  */
25
55
  codeSelection?: string,
56
+ /**
57
+ * The features enabled for this chat.
58
+ *
59
+ * If a feature is marked as false, it's disabled, otherwise it's enabled.
60
+ */
61
+ features?: Partial<ChatFeatures>,
62
+ /**
63
+ * The current LLM (Large Language Model) being used for this chat.
64
+ */
65
+ selected_model_id?: string,
66
+ }
67
+
68
+ export interface ChatProperties extends ChatPropertiesWithOptionalFeatures {
69
+ /**
70
+ * The features enabled for this chat.
71
+ */
72
+ features: ChatFeatures,
26
73
  }
27
74
 
28
75
  type ChatMessagesListener = (chat: ChatEntry[]) => void
29
76
 
30
- export type MessageInterceptor = (entry: ChatEntry, chat: ChatState) => boolean | undefined | void | Promise<boolean | undefined | void>
77
+ export type MessageInterceptor = (
78
+ entry: ChatEntry, chat: ChatState, signal: AbortSignal,
79
+ ) => boolean | undefined | void | Promise<boolean | undefined | void>
31
80
 
32
81
  interface Options {
82
+ /**
83
+ * The unique identifier for this chat (conversationId).
84
+ */
33
85
  id: string,
34
- initial: ChatProperties,
86
+ /**
87
+ * The initial value for the state of this chat.
88
+ */
89
+ initial: ChatPropertiesWithOptionalFeatures,
90
+ /**
91
+ * The interceptors to use for the messages pushed to this chat.
92
+ *
93
+ * The interceptors are run whenever a new message (chat entry) is added to the chat. They're always run in the order of the array and if
94
+ * any returns a promise, the promise is awaited before running the next.
95
+ *
96
+ * If an interceptor returns false or resolves to false (if a promise), the execution is interrupted, i.e. the next interceptors are not
97
+ * run.
98
+ *
99
+ * An interceptor receives three parameters:
100
+ * 1. the chat entry added;
101
+ * 2. the chat state;
102
+ * 3. an AbortSignal that can be aborted by calling `abort()` on the ChatState. Once the signal is aborted, the interceptor must abort all
103
+ * of its operations.
104
+ *
105
+ * Attention: when multiple messages are added at once, only the last goes through the interceptors. Furthermore, messages created by the
106
+ * constructor don't go through the interceptors, only messages added via `pushMessage` do.
107
+ */
35
108
  interceptors?: MessageInterceptor[],
109
+ /**
110
+ * The content of this chat, i.e. its messages.
111
+ */
36
112
  entries?: ChatEntry[],
113
+ /**
114
+ * Whether or not the label for this chat is real (persisted in the backend) or just a mock.
115
+ *
116
+ * This should be true if the label is just a mock.
117
+ */
118
+ untitled?: boolean,
37
119
  }
38
120
 
121
+ /**
122
+ * A chat. Each chat tab is a different ChatState.
123
+ */
39
124
  export class ChatState extends ObservableState<ChatProperties> {
40
125
  readonly id: string
41
126
  private entries: ChatEntry[]
42
127
  private messagesListeners: ChatMessagesListener[] = []
43
128
  private readonly interceptors: MessageInterceptor[]
44
-
45
129
  /**
46
- * @param id the id of the chat.
47
- * @param initial the initial state.
48
- * @param interceptors a list of interceptors to run whenever a new message (entry) is added to the chat. If an interception function
49
- * returns false, the next interceptors are not run. Attention: when multiple messages are added at once, only the last goes through the
50
- * interceptors. Furthermore, messages created by the constructor don't go through the interceptors, only messages added via `pushMessage`
51
- * do.
130
+ * A memory space (map) to be used by interceptors.
131
+ */
132
+ interceptorMemory = new Map<string, any>()
133
+ /**
134
+ * Abort signals currently active.
52
135
  */
53
- constructor({ id, initial, entries = [], interceptors = [] }: Options) {
54
- super(initial)
136
+ private abortions: AbortController[] = []
137
+ /**
138
+ * Used to manage uploads for this Chat.
139
+ */
140
+ readonly uploadManager = new UploadManager({ maxSize: maxFileSize, accept: acceptedFileTypes, maxItems: maxUploadItems })
141
+ untitled: boolean
142
+
143
+ constructor({ id, initial, entries = [], interceptors = [], untitled = false }: Options) {
144
+ super({ ...initial, features: getFeaturesWithDefaults(initial.features) })
55
145
  this.id = id
56
146
  this.interceptors = interceptors
57
147
  this.entries = entries
148
+ this.untitled = untitled
58
149
  }
59
150
 
60
151
  private runMessagesListeners() {
@@ -62,12 +153,24 @@ export class ChatState extends ObservableState<ChatProperties> {
62
153
  }
63
154
 
64
155
  private async runInterceptors(entry: ChatEntry) {
156
+ const abort = new AbortController()
157
+ this.abortions.push(abort)
65
158
  for (const interceptor of this.interceptors) {
66
- const result = await interceptor(entry, this)
67
- if (result === false) break
159
+ try {
160
+ const result = await interceptor(entry, this, abort.signal)
161
+ if (result === false) break
162
+ } catch (error) {
163
+ pull(this.abortions, abort)
164
+ throw error
165
+ }
68
166
  }
167
+ pull(this.abortions, abort)
69
168
  }
70
169
 
170
+ /**
171
+ * Adds one or more messages to the chat. Messages are appended to the end of the chat.
172
+ * @param entries the messages to add.
173
+ */
71
174
  pushMessage(...entries: ChatEntry[]) {
72
175
  if (!entries.length) return
73
176
  this.entries = [...this.entries, ...entries]
@@ -75,19 +178,71 @@ export class ChatState extends ObservableState<ChatProperties> {
75
178
  this.runInterceptors(last(entries)!)
76
179
  }
77
180
 
181
+ /**
182
+ * Removes one or more messages from the end of the chat.
183
+ * @param quantity the number of messages to remove. Defaults to 1.
184
+ */
78
185
  popMessage(quantity = 1) {
79
186
  this.entries = dropRight(this.entries, quantity)
80
187
  this.runMessagesListeners()
81
188
  }
82
189
 
190
+ /**
191
+ * @returns the current list of messages.
192
+ */
83
193
  getMessages() {
84
194
  return this.entries
85
195
  }
86
196
 
197
+ /**
198
+ * Watches this chat for changes in the list of messages.
199
+ * @param listener the function to call whenever the list of messages changes.
200
+ * @returns a function that removes the listener.
201
+ */
87
202
  onChangeMessages(listener: ChatMessagesListener) {
88
203
  this.messagesListeners.push(listener)
89
204
  return () => {
90
205
  pull(this.messagesListeners, listener)
91
206
  }
92
207
  }
208
+
209
+ /**
210
+ * Aborts all currently running chat interceptors.
211
+ */
212
+ abort() {
213
+ this.abortions.forEach(a => a.abort(new AbortedError()))
214
+ this.abortions = []
215
+ }
216
+
217
+ /**
218
+ * Creates a chat that has the same state value and interceptors as this one.
219
+ *
220
+ * All abortions from this chat will be transferred to the new chat. The abortions of this chat will be cleared.
221
+ */
222
+ transferToNewChat(label: string) {
223
+ const newChat = new ChatState({
224
+ id: ulid(),
225
+ initial: { ...this.state, label },
226
+ interceptors: this.interceptors,
227
+ })
228
+ newChat.abortions = this.abortions
229
+ this.abortions = []
230
+ return newChat
231
+ }
232
+
233
+ /**
234
+ * Returns a promise that resolves when the chat is no longer loading (isLoading state).
235
+ *
236
+ * If this is called when the chat is not loading, a resolved promise is returned.
237
+ */
238
+ whenLoadingEnds(): Promise<void> {
239
+ return this.get('isLoading') ? new Promise((resolve) => {
240
+ const removeListener = this.onChange('isLoading', (value) => {
241
+ if (!value) {
242
+ resolve()
243
+ removeListener()
244
+ }
245
+ })
246
+ }) : Promise.resolve()
247
+ }
93
248
  }