@stack-spot/ai-chat-widget 1.0.0-dev.1768423745486 → 1.0.0-dev.1768480603636

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 (573) hide show
  1. package/dist/AbortedError.d.ts +5 -0
  2. package/dist/AbortedError.d.ts.map +1 -0
  3. package/dist/AbortedError.js +7 -0
  4. package/dist/AbortedError.js.map +1 -0
  5. package/dist/StackspotAIWidget.d.ts +54 -0
  6. package/dist/StackspotAIWidget.d.ts.map +1 -0
  7. package/dist/StackspotAIWidget.js +43 -0
  8. package/dist/StackspotAIWidget.js.map +1 -0
  9. package/dist/app-metadata.json +175 -0
  10. package/dist/assets/placeholder.png +0 -0
  11. package/dist/chat-interceptors/CustomInputs.d.ts +22 -0
  12. package/dist/chat-interceptors/CustomInputs.d.ts.map +1 -0
  13. package/dist/chat-interceptors/CustomInputs.js +71 -0
  14. package/dist/chat-interceptors/CustomInputs.js.map +1 -0
  15. package/dist/chat-interceptors/quick-command-questions.d.ts +14 -0
  16. package/dist/chat-interceptors/quick-command-questions.d.ts.map +1 -0
  17. package/dist/chat-interceptors/quick-command-questions.js +28 -0
  18. package/dist/chat-interceptors/quick-command-questions.js.map +1 -0
  19. package/dist/chat-interceptors/quick-commands.d.ts +17 -0
  20. package/dist/chat-interceptors/quick-commands.d.ts.map +1 -0
  21. package/dist/chat-interceptors/quick-commands.js +445 -0
  22. package/dist/chat-interceptors/quick-commands.js.map +1 -0
  23. package/dist/chat-interceptors/send-message.d.ts +29 -0
  24. package/dist/chat-interceptors/send-message.d.ts.map +1 -0
  25. package/dist/chat-interceptors/send-message.js +252 -0
  26. package/dist/chat-interceptors/send-message.js.map +1 -0
  27. package/dist/components/AdaptiveTextArea.d.ts +22 -0
  28. package/dist/components/AdaptiveTextArea.d.ts.map +1 -0
  29. package/dist/components/AdaptiveTextArea.js +40 -0
  30. package/dist/components/AdaptiveTextArea.js.map +1 -0
  31. package/dist/components/AgentCard/AgentCardCreate.d.ts +4 -0
  32. package/dist/components/AgentCard/AgentCardCreate.d.ts.map +1 -0
  33. package/dist/components/AgentCard/AgentCardCreate.js +33 -0
  34. package/dist/components/AgentCard/AgentCardCreate.js.map +1 -0
  35. package/dist/components/AgentCard/dictionary.d.ts +23 -0
  36. package/dist/components/AgentCard/dictionary.d.ts.map +1 -0
  37. package/dist/components/AgentCard/dictionary.js +23 -0
  38. package/dist/components/AgentCard/dictionary.js.map +1 -0
  39. package/dist/components/AgentCard/index.d.ts +5 -0
  40. package/dist/components/AgentCard/index.d.ts.map +1 -0
  41. package/dist/components/AgentCard/index.js +55 -0
  42. package/dist/components/AgentCard/index.js.map +1 -0
  43. package/dist/components/AnimatedOpacity.d.ts +8 -0
  44. package/dist/components/AnimatedOpacity.d.ts.map +1 -0
  45. package/dist/components/AnimatedOpacity.js +46 -0
  46. package/dist/components/AnimatedOpacity.js.map +1 -0
  47. package/dist/components/AutoFocus.d.ts +23 -0
  48. package/dist/components/AutoFocus.d.ts.map +1 -0
  49. package/dist/components/AutoFocus.js +23 -0
  50. package/dist/components/AutoFocus.js.map +1 -0
  51. package/dist/components/ButtonFavorite.d.ts +40 -0
  52. package/dist/components/ButtonFavorite.d.ts.map +1 -0
  53. package/dist/components/ButtonFavorite.js +25 -0
  54. package/dist/components/ButtonFavorite.js.map +1 -0
  55. package/dist/components/Code.d.ts +20 -0
  56. package/dist/components/Code.d.ts.map +1 -0
  57. package/dist/components/Code.js +146 -0
  58. package/dist/components/Code.js.map +1 -0
  59. package/dist/components/ComponentNavigator.d.ts +38 -0
  60. package/dist/components/ComponentNavigator.d.ts.map +1 -0
  61. package/dist/components/ComponentNavigator.js +31 -0
  62. package/dist/components/ComponentNavigator.js.map +1 -0
  63. package/dist/components/Fading.d.ts +32 -0
  64. package/dist/components/Fading.d.ts.map +1 -0
  65. package/dist/components/Fading.js +33 -0
  66. package/dist/components/Fading.js.map +1 -0
  67. package/dist/components/FadingOverflow.d.ts +37 -0
  68. package/dist/components/FadingOverflow.d.ts.map +1 -0
  69. package/dist/components/FadingOverflow.js +224 -0
  70. package/dist/components/FadingOverflow.js.map +1 -0
  71. package/dist/components/FileDescription.d.ts +10 -0
  72. package/dist/components/FileDescription.d.ts.map +1 -0
  73. package/dist/components/FileDescription.js +84 -0
  74. package/dist/components/FileDescription.js.map +1 -0
  75. package/dist/components/HistoryList.d.ts +25 -0
  76. package/dist/components/HistoryList.d.ts.map +1 -0
  77. package/dist/components/HistoryList.js +76 -0
  78. package/dist/components/HistoryList.js.map +1 -0
  79. package/dist/components/ListResource.d.ts +29 -0
  80. package/dist/components/ListResource.d.ts.map +1 -0
  81. package/dist/components/ListResource.js +17 -0
  82. package/dist/components/ListResource.js.map +1 -0
  83. package/dist/components/Markdown.d.ts +9 -0
  84. package/dist/components/Markdown.d.ts.map +1 -0
  85. package/dist/components/Markdown.js +17 -0
  86. package/dist/components/Markdown.js.map +1 -0
  87. package/dist/components/Modal.d.ts +9 -0
  88. package/dist/components/Modal.d.ts.map +1 -0
  89. package/dist/components/Modal.js +56 -0
  90. package/dist/components/Modal.js.map +1 -0
  91. package/dist/components/QuickStartButton.d.ts +6 -0
  92. package/dist/components/QuickStartButton.d.ts.map +1 -0
  93. package/dist/components/QuickStartButton.js +8 -0
  94. package/dist/components/QuickStartButton.js.map +1 -0
  95. package/dist/components/RightPanelContentList.d.ts +10 -0
  96. package/dist/components/RightPanelContentList.d.ts.map +1 -0
  97. package/dist/components/RightPanelContentList.js +7 -0
  98. package/dist/components/RightPanelContentList.js.map +1 -0
  99. package/dist/components/RightPanelForm.d.ts +8 -0
  100. package/dist/components/RightPanelForm.d.ts.map +1 -0
  101. package/dist/components/RightPanelForm.js +85 -0
  102. package/dist/components/RightPanelForm.js.map +1 -0
  103. package/dist/components/RightPanelTabs.d.ts +10 -0
  104. package/dist/components/RightPanelTabs.d.ts.map +1 -0
  105. package/dist/components/RightPanelTabs.js +12 -0
  106. package/dist/components/RightPanelTabs.js.map +1 -0
  107. package/dist/components/Selector/SelectVersion.d.ts +12 -0
  108. package/dist/components/Selector/SelectVersion.d.ts.map +1 -0
  109. package/dist/components/Selector/SelectVersion.js +33 -0
  110. package/dist/components/Selector/SelectVersion.js.map +1 -0
  111. package/dist/components/Selector/index.d.ts +56 -0
  112. package/dist/components/Selector/index.d.ts.map +1 -0
  113. package/dist/components/Selector/index.js +146 -0
  114. package/dist/components/Selector/index.js.map +1 -0
  115. package/dist/components/Selector/styled.d.ts +6 -0
  116. package/dist/components/Selector/styled.d.ts.map +1 -0
  117. package/dist/components/Selector/styled.js +202 -0
  118. package/dist/components/Selector/styled.js.map +1 -0
  119. package/dist/components/StackedBadge.d.ts +14 -0
  120. package/dist/components/StackedBadge.d.ts.map +1 -0
  121. package/dist/components/StackedBadge.js +56 -0
  122. package/dist/components/StackedBadge.js.map +1 -0
  123. package/dist/components/TabManager.d.ts +40 -0
  124. package/dist/components/TabManager.d.ts.map +1 -0
  125. package/dist/components/TabManager.js +146 -0
  126. package/dist/components/TabManager.js.map +1 -0
  127. package/dist/components/ToolBadge.d.ts +9 -0
  128. package/dist/components/ToolBadge.d.ts.map +1 -0
  129. package/dist/components/ToolBadge.js +34 -0
  130. package/dist/components/ToolBadge.js.map +1 -0
  131. package/dist/components/WorkspaceTabNavigator.d.ts +17 -0
  132. package/dist/components/WorkspaceTabNavigator.d.ts.map +1 -0
  133. package/dist/components/WorkspaceTabNavigator.js +93 -0
  134. package/dist/components/WorkspaceTabNavigator.js.map +1 -0
  135. package/dist/components/form/DescribedCheckboxGroup.d.ts +31 -0
  136. package/dist/components/form/DescribedCheckboxGroup.d.ts.map +1 -0
  137. package/dist/components/form/DescribedCheckboxGroup.js +77 -0
  138. package/dist/components/form/DescribedCheckboxGroup.js.map +1 -0
  139. package/dist/components/form/DescribedRadioGroup.d.ts +32 -0
  140. package/dist/components/form/DescribedRadioGroup.d.ts.map +1 -0
  141. package/dist/components/form/DescribedRadioGroup.js +67 -0
  142. package/dist/components/form/DescribedRadioGroup.js.map +1 -0
  143. package/dist/components/form/dictionary.d.ts +19 -0
  144. package/dist/components/form/dictionary.d.ts.map +1 -0
  145. package/dist/components/form/dictionary.js +19 -0
  146. package/dist/components/form/dictionary.js.map +1 -0
  147. package/dist/components/form/styled.d.ts +2 -0
  148. package/dist/components/form/styled.d.ts.map +1 -0
  149. package/dist/components/form/styled.js +41 -0
  150. package/dist/components/form/styled.js.map +1 -0
  151. package/dist/components/form/types.d.ts +61 -0
  152. package/dist/components/form/types.d.ts.map +1 -0
  153. package/dist/components/form/types.js +2 -0
  154. package/dist/components/form/types.js.map +1 -0
  155. package/dist/context/AIWidgetProvider.d.ts +23 -0
  156. package/dist/context/AIWidgetProvider.d.ts.map +1 -0
  157. package/dist/context/AIWidgetProvider.js +23 -0
  158. package/dist/context/AIWidgetProvider.js.map +1 -0
  159. package/dist/context/hooks.d.ts +75 -0
  160. package/dist/context/hooks.d.ts.map +1 -0
  161. package/dist/context/hooks.js +148 -0
  162. package/dist/context/hooks.js.map +1 -0
  163. package/dist/features.d.ts +75 -0
  164. package/dist/features.d.ts.map +1 -0
  165. package/dist/features.js +24 -0
  166. package/dist/features.js.map +1 -0
  167. package/dist/hooks/enabled-feature-flags.d.ts +5 -0
  168. package/dist/hooks/enabled-feature-flags.d.ts.map +1 -0
  169. package/dist/hooks/enabled-feature-flags.js +28 -0
  170. package/dist/hooks/enabled-feature-flags.js.map +1 -0
  171. package/dist/hooks/midnight-update-view.d.ts +5 -0
  172. package/dist/hooks/midnight-update-view.d.ts.map +1 -0
  173. package/dist/hooks/midnight-update-view.js +30 -0
  174. package/dist/hooks/midnight-update-view.js.map +1 -0
  175. package/dist/index.d.ts +21 -0
  176. package/dist/index.d.ts.map +1 -0
  177. package/dist/index.js +16 -0
  178. package/dist/index.js.map +1 -0
  179. package/dist/layout.css +192 -0
  180. package/dist/regex.d.ts +3 -0
  181. package/dist/regex.d.ts.map +1 -0
  182. package/dist/regex.js +3 -0
  183. package/dist/regex.js.map +1 -0
  184. package/dist/right-panel/DefaultPanel.d.ts +12 -0
  185. package/dist/right-panel/DefaultPanel.d.ts.map +1 -0
  186. package/dist/right-panel/DefaultPanel.js +48 -0
  187. package/dist/right-panel/DefaultPanel.js.map +1 -0
  188. package/dist/right-panel/RightPanel.d.ts +5 -0
  189. package/dist/right-panel/RightPanel.d.ts.map +1 -0
  190. package/dist/right-panel/RightPanel.js +9 -0
  191. package/dist/right-panel/RightPanel.js.map +1 -0
  192. package/dist/right-panel/RightPanelProvider.d.ts +28 -0
  193. package/dist/right-panel/RightPanelProvider.d.ts.map +1 -0
  194. package/dist/right-panel/RightPanelProvider.js +10 -0
  195. package/dist/right-panel/RightPanelProvider.js.map +1 -0
  196. package/dist/right-panel/constants.d.ts +2 -0
  197. package/dist/right-panel/constants.d.ts.map +1 -0
  198. package/dist/right-panel/constants.js +2 -0
  199. package/dist/right-panel/constants.js.map +1 -0
  200. package/dist/right-panel/hooks.d.ts +19 -0
  201. package/dist/right-panel/hooks.d.ts.map +1 -0
  202. package/dist/right-panel/hooks.js +46 -0
  203. package/dist/right-panel/hooks.js.map +1 -0
  204. package/dist/state/ChatEntry.d.ts +230 -0
  205. package/dist/state/ChatEntry.d.ts.map +1 -0
  206. package/dist/state/ChatEntry.js +63 -0
  207. package/dist/state/ChatEntry.js.map +1 -0
  208. package/dist/state/ChatState.d.ts +171 -0
  209. package/dist/state/ChatState.d.ts.map +1 -0
  210. package/dist/state/ChatState.js +129 -0
  211. package/dist/state/ChatState.js.map +1 -0
  212. package/dist/state/ChatTabsController.d.ts +66 -0
  213. package/dist/state/ChatTabsController.d.ts.map +1 -0
  214. package/dist/state/ChatTabsController.js +116 -0
  215. package/dist/state/ChatTabsController.js.map +1 -0
  216. package/dist/state/ObservableState.d.ts +24 -0
  217. package/dist/state/ObservableState.d.ts.map +1 -0
  218. package/dist/state/ObservableState.js +39 -0
  219. package/dist/state/ObservableState.js.map +1 -0
  220. package/dist/state/WidgetState.d.ts +86 -0
  221. package/dist/state/WidgetState.d.ts.map +1 -0
  222. package/dist/state/WidgetState.js +57 -0
  223. package/dist/state/WidgetState.js.map +1 -0
  224. package/dist/state/constants.d.ts +5 -0
  225. package/dist/state/constants.d.ts.map +1 -0
  226. package/dist/state/constants.js +10 -0
  227. package/dist/state/constants.js.map +1 -0
  228. package/dist/state/types.d.ts +18 -0
  229. package/dist/state/types.d.ts.map +1 -0
  230. package/dist/state/types.js +2 -0
  231. package/dist/state/types.js.map +1 -0
  232. package/dist/types.d.ts +33 -0
  233. package/dist/types.d.ts.map +1 -0
  234. package/dist/types.js +2 -0
  235. package/dist/types.js.map +1 -0
  236. package/dist/utils/chat.d.ts +13 -0
  237. package/dist/utils/chat.d.ts.map +1 -0
  238. package/dist/utils/chat.js +28 -0
  239. package/dist/utils/chat.js.map +1 -0
  240. package/dist/utils/check-is-trial.d.ts +2 -0
  241. package/dist/utils/check-is-trial.d.ts.map +1 -0
  242. package/dist/utils/check-is-trial.js +6 -0
  243. package/dist/utils/check-is-trial.js.map +1 -0
  244. package/dist/utils/copy-to-clipboard.d.ts +6 -0
  245. package/dist/utils/copy-to-clipboard.d.ts.map +1 -0
  246. package/dist/utils/copy-to-clipboard.js +30 -0
  247. package/dist/utils/copy-to-clipboard.js.map +1 -0
  248. package/dist/utils/date.d.ts +31 -0
  249. package/dist/utils/date.d.ts.map +1 -0
  250. package/dist/utils/date.js +66 -0
  251. package/dist/utils/date.js.map +1 -0
  252. package/dist/utils/download.d.ts +7 -0
  253. package/dist/utils/download.d.ts.map +1 -0
  254. package/dist/utils/download.js +15 -0
  255. package/dist/utils/download.js.map +1 -0
  256. package/dist/utils/error.d.ts +2 -0
  257. package/dist/utils/error.d.ts.map +1 -0
  258. package/dist/utils/error.js +54 -0
  259. package/dist/utils/error.js.map +1 -0
  260. package/dist/utils/knowledge-source.d.ts +19 -0
  261. package/dist/utils/knowledge-source.d.ts.map +1 -0
  262. package/dist/utils/knowledge-source.js +60 -0
  263. package/dist/utils/knowledge-source.js.map +1 -0
  264. package/dist/utils/planning-tool.d.ts +17 -0
  265. package/dist/utils/planning-tool.d.ts.map +1 -0
  266. package/dist/utils/planning-tool.js +32 -0
  267. package/dist/utils/planning-tool.js.map +1 -0
  268. package/dist/utils/programming-languages.d.ts +7 -0
  269. package/dist/utils/programming-languages.d.ts.map +1 -0
  270. package/dist/utils/programming-languages.js +474 -0
  271. package/dist/utils/programming-languages.js.map +1 -0
  272. package/dist/utils/string.d.ts +7 -0
  273. package/dist/utils/string.d.ts.map +1 -0
  274. package/dist/utils/string.js +11 -0
  275. package/dist/utils/string.js.map +1 -0
  276. package/dist/utils/tools.d.ts +23 -0
  277. package/dist/utils/tools.d.ts.map +1 -0
  278. package/dist/utils/tools.js +23 -0
  279. package/dist/utils/tools.js.map +1 -0
  280. package/dist/utils/update-tool-step.d.ts +3 -0
  281. package/dist/utils/update-tool-step.d.ts.map +1 -0
  282. package/dist/utils/update-tool-step.js +23 -0
  283. package/dist/utils/update-tool-step.js.map +1 -0
  284. package/dist/utils/upload/FileUpload.d.ts +21 -0
  285. package/dist/utils/upload/FileUpload.d.ts.map +1 -0
  286. package/dist/utils/upload/FileUpload.js +54 -0
  287. package/dist/utils/upload/FileUpload.js.map +1 -0
  288. package/dist/utils/upload/UploadManager.d.ts +42 -0
  289. package/dist/utils/upload/UploadManager.d.ts.map +1 -0
  290. package/dist/utils/upload/UploadManager.js +138 -0
  291. package/dist/utils/upload/UploadManager.js.map +1 -0
  292. package/dist/utils/upload/context.d.ts +15 -0
  293. package/dist/utils/upload/context.d.ts.map +1 -0
  294. package/dist/utils/upload/context.js +37 -0
  295. package/dist/utils/upload/context.js.map +1 -0
  296. package/dist/utils/upload/errors.d.ts +17 -0
  297. package/dist/utils/upload/errors.d.ts.map +1 -0
  298. package/dist/utils/upload/errors.js +27 -0
  299. package/dist/utils/upload/errors.js.map +1 -0
  300. package/dist/utils/upload/types.d.ts +7 -0
  301. package/dist/utils/upload/types.d.ts.map +1 -0
  302. package/dist/utils/upload/types.js +2 -0
  303. package/dist/utils/upload/types.js.map +1 -0
  304. package/dist/utils/upload/use-paste-upload.d.ts +8 -0
  305. package/dist/utils/upload/use-paste-upload.d.ts.map +1 -0
  306. package/dist/utils/upload/use-paste-upload.js +19 -0
  307. package/dist/utils/upload/use-paste-upload.js.map +1 -0
  308. package/dist/utils/upload/utils.d.ts +4 -0
  309. package/dist/utils/upload/utils.d.ts.map +1 -0
  310. package/dist/utils/upload/utils.js +10 -0
  311. package/dist/utils/upload/utils.js.map +1 -0
  312. package/dist/utils/url.d.ts +2 -0
  313. package/dist/utils/url.d.ts.map +1 -0
  314. package/dist/utils/url.js +8 -0
  315. package/dist/utils/url.js.map +1 -0
  316. package/dist/views/Agents/AgentDescription.d.ts +8 -0
  317. package/dist/views/Agents/AgentDescription.d.ts.map +1 -0
  318. package/dist/views/Agents/AgentDescription.js +53 -0
  319. package/dist/views/Agents/AgentDescription.js.map +1 -0
  320. package/dist/views/Agents/AgentsPanel.d.ts +5 -0
  321. package/dist/views/Agents/AgentsPanel.d.ts.map +1 -0
  322. package/dist/views/Agents/AgentsPanel.js +45 -0
  323. package/dist/views/Agents/AgentsPanel.js.map +1 -0
  324. package/dist/views/Agents/AgentsTab.d.ts +11 -0
  325. package/dist/views/Agents/AgentsTab.d.ts.map +1 -0
  326. package/dist/views/Agents/AgentsTab.js +99 -0
  327. package/dist/views/Agents/AgentsTab.js.map +1 -0
  328. package/dist/views/Agents/dictionary.d.ts +2 -0
  329. package/dist/views/Agents/dictionary.d.ts.map +1 -0
  330. package/dist/views/Agents/dictionary.js +45 -0
  331. package/dist/views/Agents/dictionary.js.map +1 -0
  332. package/dist/views/Agents/index.d.ts +5 -0
  333. package/dist/views/Agents/index.d.ts.map +1 -0
  334. package/dist/views/Agents/index.js +21 -0
  335. package/dist/views/Agents/index.js.map +1 -0
  336. package/dist/views/Agents/styled.d.ts +3 -0
  337. package/dist/views/Agents/styled.d.ts.map +1 -0
  338. package/dist/views/Agents/styled.js +68 -0
  339. package/dist/views/Agents/styled.js.map +1 -0
  340. package/dist/views/Agents/useAgentFavorites.d.ts +8 -0
  341. package/dist/views/Agents/useAgentFavorites.d.ts.map +1 -0
  342. package/dist/views/Agents/useAgentFavorites.js +59 -0
  343. package/dist/views/Agents/useAgentFavorites.js.map +1 -0
  344. package/dist/views/Chat/AgentInfo.d.ts +11 -0
  345. package/dist/views/Chat/AgentInfo.d.ts.map +1 -0
  346. package/dist/views/Chat/AgentInfo.js +8 -0
  347. package/dist/views/Chat/AgentInfo.js.map +1 -0
  348. package/dist/views/Chat/ButtonExecutionDetail.d.ts +5 -0
  349. package/dist/views/Chat/ButtonExecutionDetail.d.ts.map +1 -0
  350. package/dist/views/Chat/ButtonExecutionDetail.js +34 -0
  351. package/dist/views/Chat/ButtonExecutionDetail.js.map +1 -0
  352. package/dist/views/Chat/ChatMessage.d.ts +59 -0
  353. package/dist/views/Chat/ChatMessage.d.ts.map +1 -0
  354. package/dist/views/Chat/ChatMessage.js +216 -0
  355. package/dist/views/Chat/ChatMessage.js.map +1 -0
  356. package/dist/views/Chat/ChatMessages.d.ts +11 -0
  357. package/dist/views/Chat/ChatMessages.d.ts.map +1 -0
  358. package/dist/views/Chat/ChatMessages.js +15 -0
  359. package/dist/views/Chat/ChatMessages.js.map +1 -0
  360. package/dist/views/Chat/StepsList.d.ts +14 -0
  361. package/dist/views/Chat/StepsList.d.ts.map +1 -0
  362. package/dist/views/Chat/StepsList.js +192 -0
  363. package/dist/views/Chat/StepsList.js.map +1 -0
  364. package/dist/views/Chat/chat-scroll.d.ts +7 -0
  365. package/dist/views/Chat/chat-scroll.d.ts.map +1 -0
  366. package/dist/views/Chat/chat-scroll.js +17 -0
  367. package/dist/views/Chat/chat-scroll.js.map +1 -0
  368. package/dist/views/Chat/events.d.ts +22 -0
  369. package/dist/views/Chat/events.d.ts.map +1 -0
  370. package/dist/views/Chat/events.js +67 -0
  371. package/dist/views/Chat/events.js.map +1 -0
  372. package/dist/views/Chat/index.d.ts +13 -0
  373. package/dist/views/Chat/index.d.ts.map +1 -0
  374. package/dist/views/Chat/index.js +11 -0
  375. package/dist/views/Chat/index.js.map +1 -0
  376. package/dist/views/Chat/styled.d.ts +4 -0
  377. package/dist/views/Chat/styled.d.ts.map +1 -0
  378. package/dist/views/Chat/styled.js +307 -0
  379. package/dist/views/Chat/styled.js.map +1 -0
  380. package/dist/views/ChatHistory/ChatHistoryPanel.d.ts +5 -0
  381. package/dist/views/ChatHistory/ChatHistoryPanel.d.ts.map +1 -0
  382. package/dist/views/ChatHistory/ChatHistoryPanel.js +14 -0
  383. package/dist/views/ChatHistory/ChatHistoryPanel.js.map +1 -0
  384. package/dist/views/ChatHistory/HistoryItem.d.ts +8 -0
  385. package/dist/views/ChatHistory/HistoryItem.d.ts.map +1 -0
  386. package/dist/views/ChatHistory/HistoryItem.js +97 -0
  387. package/dist/views/ChatHistory/HistoryItem.js.map +1 -0
  388. package/dist/views/ChatHistory/dictionary.d.ts +2 -0
  389. package/dist/views/ChatHistory/dictionary.d.ts.map +1 -0
  390. package/dist/views/ChatHistory/dictionary.js +19 -0
  391. package/dist/views/ChatHistory/dictionary.js.map +1 -0
  392. package/dist/views/ChatHistory/index.d.ts +5 -0
  393. package/dist/views/ChatHistory/index.d.ts.map +1 -0
  394. package/dist/views/ChatHistory/index.js +26 -0
  395. package/dist/views/ChatHistory/index.js.map +1 -0
  396. package/dist/views/ChatHistory/styled.d.ts +2 -0
  397. package/dist/views/ChatHistory/styled.d.ts.map +1 -0
  398. package/dist/views/ChatHistory/styled.js +58 -0
  399. package/dist/views/ChatHistory/styled.js.map +1 -0
  400. package/dist/views/ChatHistory/utils.d.ts +21 -0
  401. package/dist/views/ChatHistory/utils.d.ts.map +1 -0
  402. package/dist/views/ChatHistory/utils.js +177 -0
  403. package/dist/views/ChatHistory/utils.js.map +1 -0
  404. package/dist/views/ChatTabSelection.d.ts +10 -0
  405. package/dist/views/ChatTabSelection.d.ts.map +1 -0
  406. package/dist/views/ChatTabSelection.js +70 -0
  407. package/dist/views/ChatTabSelection.js.map +1 -0
  408. package/dist/views/Editor.d.ts +5 -0
  409. package/dist/views/Editor.d.ts.map +1 -0
  410. package/dist/views/Editor.js +96 -0
  411. package/dist/views/Editor.js.map +1 -0
  412. package/dist/views/Home/BuiltInAgent.d.ts +6 -0
  413. package/dist/views/Home/BuiltInAgent.d.ts.map +1 -0
  414. package/dist/views/Home/BuiltInAgent.js +37 -0
  415. package/dist/views/Home/BuiltInAgent.js.map +1 -0
  416. package/dist/views/Home/CustomAgent.d.ts +5 -0
  417. package/dist/views/Home/CustomAgent.d.ts.map +1 -0
  418. package/dist/views/Home/CustomAgent.js +23 -0
  419. package/dist/views/Home/CustomAgent.js.map +1 -0
  420. package/dist/views/Home/index.d.ts +8 -0
  421. package/dist/views/Home/index.d.ts.map +1 -0
  422. package/dist/views/Home/index.js +34 -0
  423. package/dist/views/Home/index.js.map +1 -0
  424. package/dist/views/Home/styled.d.ts +2 -0
  425. package/dist/views/Home/styled.d.ts.map +1 -0
  426. package/dist/views/Home/styled.js +74 -0
  427. package/dist/views/Home/styled.js.map +1 -0
  428. package/dist/views/Home/types.d.ts +16 -0
  429. package/dist/views/Home/types.d.ts.map +1 -0
  430. package/dist/views/Home/types.js +2 -0
  431. package/dist/views/Home/types.js.map +1 -0
  432. package/dist/views/KSDocument.d.ts +5 -0
  433. package/dist/views/KSDocument.d.ts.map +1 -0
  434. package/dist/views/KSDocument.js +43 -0
  435. package/dist/views/KSDocument.js.map +1 -0
  436. package/dist/views/KnowledgeSources.d.ts +14 -0
  437. package/dist/views/KnowledgeSources.d.ts.map +1 -0
  438. package/dist/views/KnowledgeSources.js +183 -0
  439. package/dist/views/KnowledgeSources.js.map +1 -0
  440. package/dist/views/MessageInput/AgentSelector.d.ts +5 -0
  441. package/dist/views/MessageInput/AgentSelector.d.ts.map +1 -0
  442. package/dist/views/MessageInput/AgentSelector.js +76 -0
  443. package/dist/views/MessageInput/AgentSelector.js.map +1 -0
  444. package/dist/views/MessageInput/ButtonAgent.d.ts +2 -0
  445. package/dist/views/MessageInput/ButtonAgent.d.ts.map +1 -0
  446. package/dist/views/MessageInput/ButtonAgent.js +35 -0
  447. package/dist/views/MessageInput/ButtonAgent.js.map +1 -0
  448. package/dist/views/MessageInput/ButtonBar.d.ts +13 -0
  449. package/dist/views/MessageInput/ButtonBar.d.ts.map +1 -0
  450. package/dist/views/MessageInput/ButtonBar.js +15 -0
  451. package/dist/views/MessageInput/ButtonBar.js.map +1 -0
  452. package/dist/views/MessageInput/ContextBar.d.ts +9 -0
  453. package/dist/views/MessageInput/ContextBar.d.ts.map +1 -0
  454. package/dist/views/MessageInput/ContextBar.js +51 -0
  455. package/dist/views/MessageInput/ContextBar.js.map +1 -0
  456. package/dist/views/MessageInput/ModelSwitcher/index.d.ts +2 -0
  457. package/dist/views/MessageInput/ModelSwitcher/index.d.ts.map +1 -0
  458. package/dist/views/MessageInput/ModelSwitcher/index.js +27 -0
  459. package/dist/views/MessageInput/ModelSwitcher/index.js.map +1 -0
  460. package/dist/views/MessageInput/ModelSwitcher/utils.d.ts +30 -0
  461. package/dist/views/MessageInput/ModelSwitcher/utils.d.ts.map +1 -0
  462. package/dist/views/MessageInput/ModelSwitcher/utils.js +91 -0
  463. package/dist/views/MessageInput/ModelSwitcher/utils.js.map +1 -0
  464. package/dist/views/MessageInput/QuickCommandSelector.d.ts +5 -0
  465. package/dist/views/MessageInput/QuickCommandSelector.d.ts.map +1 -0
  466. package/dist/views/MessageInput/QuickCommandSelector.js +104 -0
  467. package/dist/views/MessageInput/QuickCommandSelector.js.map +1 -0
  468. package/dist/views/MessageInput/SelectContent.d.ts +2 -0
  469. package/dist/views/MessageInput/SelectContent.d.ts.map +1 -0
  470. package/dist/views/MessageInput/SelectContent.js +84 -0
  471. package/dist/views/MessageInput/SelectContent.js.map +1 -0
  472. package/dist/views/MessageInput/UploadBar.d.ts +2 -0
  473. package/dist/views/MessageInput/UploadBar.d.ts.map +1 -0
  474. package/dist/views/MessageInput/UploadBar.js +74 -0
  475. package/dist/views/MessageInput/UploadBar.js.map +1 -0
  476. package/dist/views/MessageInput/UploadDragNDrop.d.ts +14 -0
  477. package/dist/views/MessageInput/UploadDragNDrop.d.ts.map +1 -0
  478. package/dist/views/MessageInput/UploadDragNDrop.js +51 -0
  479. package/dist/views/MessageInput/UploadDragNDrop.js.map +1 -0
  480. package/dist/views/MessageInput/chat-entry-history.d.ts +11 -0
  481. package/dist/views/MessageInput/chat-entry-history.d.ts.map +1 -0
  482. package/dist/views/MessageInput/chat-entry-history.js +78 -0
  483. package/dist/views/MessageInput/chat-entry-history.js.map +1 -0
  484. package/dist/views/MessageInput/dictionary.d.ts +2 -0
  485. package/dist/views/MessageInput/dictionary.d.ts.map +1 -0
  486. package/dist/views/MessageInput/dictionary.js +81 -0
  487. package/dist/views/MessageInput/dictionary.js.map +1 -0
  488. package/dist/views/MessageInput/index.d.ts +10 -0
  489. package/dist/views/MessageInput/index.d.ts.map +1 -0
  490. package/dist/views/MessageInput/index.js +140 -0
  491. package/dist/views/MessageInput/index.js.map +1 -0
  492. package/dist/views/MessageInput/styled.d.ts +16 -0
  493. package/dist/views/MessageInput/styled.d.ts.map +1 -0
  494. package/dist/views/MessageInput/styled.js +341 -0
  495. package/dist/views/MessageInput/styled.js.map +1 -0
  496. package/dist/views/MinimizedHeader.d.ts +7 -0
  497. package/dist/views/MinimizedHeader.d.ts.map +1 -0
  498. package/dist/views/MinimizedHeader.js +78 -0
  499. package/dist/views/MinimizedHeader.js.map +1 -0
  500. package/dist/views/Resources.d.ts +2 -0
  501. package/dist/views/Resources.d.ts.map +1 -0
  502. package/dist/views/Resources.js +72 -0
  503. package/dist/views/Resources.js.map +1 -0
  504. package/dist/views/Stacks.d.ts +14 -0
  505. package/dist/views/Stacks.d.ts.map +1 -0
  506. package/dist/views/Stacks.js +172 -0
  507. package/dist/views/Stacks.js.map +1 -0
  508. package/dist/views/Steps/FlowChart/HandleGroup.d.ts +10 -0
  509. package/dist/views/Steps/FlowChart/HandleGroup.d.ts.map +1 -0
  510. package/dist/views/Steps/FlowChart/HandleGroup.js +4 -0
  511. package/dist/views/Steps/FlowChart/HandleGroup.js.map +1 -0
  512. package/dist/views/Steps/FlowChart/NodeDynamic.d.ts +15 -0
  513. package/dist/views/Steps/FlowChart/NodeDynamic.d.ts.map +1 -0
  514. package/dist/views/Steps/FlowChart/NodeDynamic.js +41 -0
  515. package/dist/views/Steps/FlowChart/NodeDynamic.js.map +1 -0
  516. package/dist/views/Steps/FlowChart/NodeStep.d.ts +10 -0
  517. package/dist/views/Steps/FlowChart/NodeStep.d.ts.map +1 -0
  518. package/dist/views/Steps/FlowChart/NodeStep.js +13 -0
  519. package/dist/views/Steps/FlowChart/NodeStep.js.map +1 -0
  520. package/dist/views/Steps/FlowChart/hooks.d.ts +7 -0
  521. package/dist/views/Steps/FlowChart/hooks.d.ts.map +1 -0
  522. package/dist/views/Steps/FlowChart/hooks.js +31 -0
  523. package/dist/views/Steps/FlowChart/hooks.js.map +1 -0
  524. package/dist/views/Steps/FlowChart/index.d.ts +12 -0
  525. package/dist/views/Steps/FlowChart/index.d.ts.map +1 -0
  526. package/dist/views/Steps/FlowChart/index.js +78 -0
  527. package/dist/views/Steps/FlowChart/index.js.map +1 -0
  528. package/dist/views/Steps/FlowChart/layout.d.ts +8 -0
  529. package/dist/views/Steps/FlowChart/layout.d.ts.map +1 -0
  530. package/dist/views/Steps/FlowChart/layout.js +59 -0
  531. package/dist/views/Steps/FlowChart/layout.js.map +1 -0
  532. package/dist/views/Steps/FlowChart/styled.d.ts +14 -0
  533. package/dist/views/Steps/FlowChart/styled.d.ts.map +1 -0
  534. package/dist/views/Steps/FlowChart/styled.js +156 -0
  535. package/dist/views/Steps/FlowChart/styled.js.map +1 -0
  536. package/dist/views/Steps/FlowChart/types.d.ts +25 -0
  537. package/dist/views/Steps/FlowChart/types.d.ts.map +1 -0
  538. package/dist/views/Steps/FlowChart/types.js +2 -0
  539. package/dist/views/Steps/FlowChart/types.js.map +1 -0
  540. package/dist/views/Steps/StepModal.d.ts +10 -0
  541. package/dist/views/Steps/StepModal.d.ts.map +1 -0
  542. package/dist/views/Steps/StepModal.js +139 -0
  543. package/dist/views/Steps/StepModal.js.map +1 -0
  544. package/dist/views/Steps/StepsPanel.d.ts +6 -0
  545. package/dist/views/Steps/StepsPanel.d.ts.map +1 -0
  546. package/dist/views/Steps/StepsPanel.js +18 -0
  547. package/dist/views/Steps/StepsPanel.js.map +1 -0
  548. package/dist/views/Steps/dictionary.d.ts +43 -0
  549. package/dist/views/Steps/dictionary.d.ts.map +1 -0
  550. package/dist/views/Steps/dictionary.js +45 -0
  551. package/dist/views/Steps/dictionary.js.map +1 -0
  552. package/dist/views/Steps/index.d.ts +5 -0
  553. package/dist/views/Steps/index.d.ts.map +1 -0
  554. package/dist/views/Steps/index.js +30 -0
  555. package/dist/views/Steps/index.js.map +1 -0
  556. package/dist/views/Steps/utils.d.ts +7 -0
  557. package/dist/views/Steps/utils.d.ts.map +1 -0
  558. package/dist/views/Steps/utils.js +32 -0
  559. package/dist/views/Steps/utils.js.map +1 -0
  560. package/dist/views/Tools.d.ts +2 -0
  561. package/dist/views/Tools.d.ts.map +1 -0
  562. package/dist/views/Tools.js +54 -0
  563. package/dist/views/Tools.js.map +1 -0
  564. package/dist/views/Workspaces/WorkspacesTab.d.ts +20 -0
  565. package/dist/views/Workspaces/WorkspacesTab.d.ts.map +1 -0
  566. package/dist/views/Workspaces/WorkspacesTab.js +61 -0
  567. package/dist/views/Workspaces/WorkspacesTab.js.map +1 -0
  568. package/dist/views/Workspaces/index.d.ts +5 -0
  569. package/dist/views/Workspaces/index.d.ts.map +1 -0
  570. package/dist/views/Workspaces/index.js +69 -0
  571. package/dist/views/Workspaces/index.js.map +1 -0
  572. package/package.json +2 -2
  573. package/src/app-metadata.json +4 -4
@@ -0,0 +1,171 @@
1
+ import { ChatFeatures } from '../features.js';
2
+ import { UploadManager } from '../utils/upload/UploadManager.js';
3
+ import { ChatEntry } from './ChatEntry.js';
4
+ import { ObservableState } from './ObservableState.js';
5
+ import { Labeled, LabeledAgent } from './types.js';
6
+ export interface ChatPropertiesWithOptionalFeatures {
7
+ /**
8
+ * The name of the chat.
9
+ */
10
+ label: string;
11
+ /**
12
+ * The current AI agent.
13
+ */
14
+ agent?: LabeledAgent;
15
+ /**
16
+ * The current workspace.
17
+ */
18
+ workspace?: Labeled;
19
+ /**
20
+ * The current stack.
21
+ */
22
+ stack?: Labeled;
23
+ /**
24
+ * The current knowledge sources.
25
+ */
26
+ knowledgeSources?: Labeled[];
27
+ /**
28
+ * Whether or not the chat is in a loading state.
29
+ */
30
+ isLoading?: boolean;
31
+ /**
32
+ * Whether or not the chat is planning.
33
+ */
34
+ isPlaning?: boolean;
35
+ /**
36
+ * The value of the next message. This is the value of the text typed in the textarea below the chat.
37
+ */
38
+ nextMessage?: string;
39
+ /**
40
+ * The current code in the editor.
41
+ */
42
+ code?: string;
43
+ /**
44
+ * The language of the current code in the editor.
45
+ */
46
+ codeLanguage?: string;
47
+ /**
48
+ * The current selection in the editor.
49
+ */
50
+ codeSelection?: string;
51
+ /**
52
+ * The features enabled for this chat.
53
+ *
54
+ * If a feature is marked as false, it's disabled, otherwise it's enabled.
55
+ */
56
+ features?: Partial<ChatFeatures>;
57
+ /**
58
+ * The current LLM (Large Language Model) being used for this chat.
59
+ */
60
+ selected_model_id?: string;
61
+ }
62
+ export interface ChatProperties extends ChatPropertiesWithOptionalFeatures {
63
+ /**
64
+ * The features enabled for this chat.
65
+ */
66
+ features: ChatFeatures;
67
+ }
68
+ type ChatMessagesListener = (chat: ChatEntry[]) => void;
69
+ export type MessageInterceptor = (entry: ChatEntry, chat: ChatState, signal: AbortSignal) => boolean | undefined | void | Promise<boolean | undefined | void>;
70
+ interface Options {
71
+ /**
72
+ * The unique identifier for this chat (conversationId).
73
+ */
74
+ id: string;
75
+ /**
76
+ * The initial value for the state of this chat.
77
+ */
78
+ initial: ChatPropertiesWithOptionalFeatures;
79
+ /**
80
+ * The interceptors to use for the messages pushed to this chat.
81
+ *
82
+ * 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
83
+ * any returns a promise, the promise is awaited before running the next.
84
+ *
85
+ * If an interceptor returns false or resolves to false (if a promise), the execution is interrupted, i.e. the next interceptors are not
86
+ * run.
87
+ *
88
+ * An interceptor receives three parameters:
89
+ * 1. the chat entry added;
90
+ * 2. the chat state;
91
+ * 3. an AbortSignal that can be aborted by calling `abort()` on the ChatState. Once the signal is aborted, the interceptor must abort all
92
+ * of its operations.
93
+ *
94
+ * Attention: when multiple messages are added at once, only the last goes through the interceptors. Furthermore, messages created by the
95
+ * constructor don't go through the interceptors, only messages added via `pushMessage` do.
96
+ */
97
+ interceptors?: MessageInterceptor[];
98
+ /**
99
+ * The content of this chat, i.e. its messages.
100
+ */
101
+ entries?: ChatEntry[];
102
+ /**
103
+ * Whether or not the label for this chat is real (persisted in the backend) or just a mock.
104
+ *
105
+ * This should be true if the label is just a mock.
106
+ */
107
+ untitled?: boolean;
108
+ }
109
+ /**
110
+ * A chat. Each chat tab is a different ChatState.
111
+ */
112
+ export declare class ChatState extends ObservableState<ChatProperties> {
113
+ readonly id: string;
114
+ private entries;
115
+ private messagesListeners;
116
+ private readonly interceptors;
117
+ /**
118
+ * A memory space (map) to be used by interceptors.
119
+ */
120
+ interceptorMemory: Map<string, any>;
121
+ /**
122
+ * Abort signals currently active.
123
+ */
124
+ private abortions;
125
+ /**
126
+ * Used to manage uploads for this Chat.
127
+ */
128
+ readonly uploadManager: UploadManager;
129
+ untitled: boolean;
130
+ constructor({ id, initial, entries, interceptors, untitled }: Options);
131
+ private runMessagesListeners;
132
+ private runInterceptors;
133
+ /**
134
+ * Adds one or more messages to the chat. Messages are appended to the end of the chat.
135
+ * @param entries the messages to add.
136
+ */
137
+ pushMessage(...entries: ChatEntry[]): void;
138
+ /**
139
+ * Removes one or more messages from the end of the chat.
140
+ * @param quantity the number of messages to remove. Defaults to 1.
141
+ */
142
+ popMessage(quantity?: number): void;
143
+ /**
144
+ * @returns the current list of messages.
145
+ */
146
+ getMessages(): ChatEntry[];
147
+ /**
148
+ * Watches this chat for changes in the list of messages.
149
+ * @param listener the function to call whenever the list of messages changes.
150
+ * @returns a function that removes the listener.
151
+ */
152
+ onChangeMessages(listener: ChatMessagesListener): () => void;
153
+ /**
154
+ * Aborts all currently running chat interceptors.
155
+ */
156
+ abort(): void;
157
+ /**
158
+ * Creates a chat that has the same state value and interceptors as this one.
159
+ *
160
+ * All abortions from this chat will be transferred to the new chat. The abortions of this chat will be cleared.
161
+ */
162
+ transferToNewChat(label: string): ChatState;
163
+ /**
164
+ * Returns a promise that resolves when the chat is no longer loading (isLoading state).
165
+ *
166
+ * If this is called when the chat is not loading, a resolved promise is returned.
167
+ */
168
+ whenLoadingEnds(): Promise<void>;
169
+ }
170
+ export {};
171
+ //# sourceMappingURL=ChatState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatState.d.ts","sourceRoot":"","sources":["../../src/state/ChatState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { dropRight, last, pull } from 'lodash';
2
+ import { ulid } from 'ulid';
3
+ import { AbortedError } from '../AbortedError.js';
4
+ import { getFeaturesWithDefaults } from '../features.js';
5
+ import { UploadManager } from '../utils/upload/UploadManager.js';
6
+ import { acceptedFileTypes, maxFileSize, maxUploadItems } from './constants.js';
7
+ import { ObservableState } from './ObservableState.js';
8
+ /**
9
+ * A chat. Each chat tab is a different ChatState.
10
+ */
11
+ export class ChatState extends ObservableState {
12
+ id;
13
+ entries;
14
+ messagesListeners = [];
15
+ interceptors;
16
+ /**
17
+ * A memory space (map) to be used by interceptors.
18
+ */
19
+ interceptorMemory = new Map();
20
+ /**
21
+ * Abort signals currently active.
22
+ */
23
+ abortions = [];
24
+ /**
25
+ * Used to manage uploads for this Chat.
26
+ */
27
+ uploadManager = new UploadManager({ maxSize: maxFileSize, accept: acceptedFileTypes, maxItems: maxUploadItems });
28
+ untitled;
29
+ constructor({ id, initial, entries = [], interceptors = [], untitled = false }) {
30
+ super({ ...initial, features: getFeaturesWithDefaults(initial.features) });
31
+ this.id = id;
32
+ this.interceptors = interceptors;
33
+ this.entries = entries;
34
+ this.untitled = untitled;
35
+ }
36
+ runMessagesListeners() {
37
+ this.messagesListeners.forEach(l => l(this.entries));
38
+ }
39
+ async runInterceptors(entry) {
40
+ const abort = new AbortController();
41
+ this.abortions.push(abort);
42
+ for (const interceptor of this.interceptors) {
43
+ try {
44
+ const result = await interceptor(entry, this, abort.signal);
45
+ if (result === false)
46
+ break;
47
+ }
48
+ catch (error) {
49
+ pull(this.abortions, abort);
50
+ throw error;
51
+ }
52
+ }
53
+ pull(this.abortions, abort);
54
+ }
55
+ /**
56
+ * Adds one or more messages to the chat. Messages are appended to the end of the chat.
57
+ * @param entries the messages to add.
58
+ */
59
+ pushMessage(...entries) {
60
+ if (!entries.length)
61
+ return;
62
+ this.entries = [...this.entries, ...entries];
63
+ this.runMessagesListeners();
64
+ this.runInterceptors(last(entries));
65
+ }
66
+ /**
67
+ * Removes one or more messages from the end of the chat.
68
+ * @param quantity the number of messages to remove. Defaults to 1.
69
+ */
70
+ popMessage(quantity = 1) {
71
+ this.entries = dropRight(this.entries, quantity);
72
+ this.runMessagesListeners();
73
+ }
74
+ /**
75
+ * @returns the current list of messages.
76
+ */
77
+ getMessages() {
78
+ return this.entries;
79
+ }
80
+ /**
81
+ * Watches this chat for changes in the list of messages.
82
+ * @param listener the function to call whenever the list of messages changes.
83
+ * @returns a function that removes the listener.
84
+ */
85
+ onChangeMessages(listener) {
86
+ this.messagesListeners.push(listener);
87
+ return () => {
88
+ pull(this.messagesListeners, listener);
89
+ };
90
+ }
91
+ /**
92
+ * Aborts all currently running chat interceptors.
93
+ */
94
+ abort() {
95
+ this.abortions.forEach(a => a.abort(new AbortedError()));
96
+ this.abortions = [];
97
+ }
98
+ /**
99
+ * Creates a chat that has the same state value and interceptors as this one.
100
+ *
101
+ * All abortions from this chat will be transferred to the new chat. The abortions of this chat will be cleared.
102
+ */
103
+ transferToNewChat(label) {
104
+ const newChat = new ChatState({
105
+ id: ulid(),
106
+ initial: { ...this.state, label },
107
+ interceptors: this.interceptors,
108
+ });
109
+ newChat.abortions = this.abortions;
110
+ this.abortions = [];
111
+ return newChat;
112
+ }
113
+ /**
114
+ * Returns a promise that resolves when the chat is no longer loading (isLoading state).
115
+ *
116
+ * If this is called when the chat is not loading, a resolved promise is returned.
117
+ */
118
+ whenLoadingEnds() {
119
+ return this.get('isLoading') ? new Promise((resolve) => {
120
+ const removeListener = this.onChange('isLoading', (value) => {
121
+ if (!value) {
122
+ resolve();
123
+ removeListener();
124
+ }
125
+ });
126
+ }) : Promise.resolve();
127
+ }
128
+ }
129
+ //# sourceMappingURL=ChatState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatState.js","sourceRoot":"","sources":["../../src/state/ChatState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { ChatState } from './ChatState.js';
2
+ type TabChangeListener = (chats: ChatState[], active: ChatState) => void;
3
+ /**
4
+ * Controls the chat tabs.
5
+ */
6
+ export declare class ChatTabsController {
7
+ private chats;
8
+ private activeChatId;
9
+ private listeners;
10
+ private runListeners;
11
+ /**
12
+ * Adds new chats to the tab view.
13
+ * @param chats the chats to add.
14
+ */
15
+ add(...chats: ChatState[]): void;
16
+ /**
17
+ * If the active chat is deleted, this selects a new chat based on the position of the chat that has been removed.
18
+ *
19
+ * @param previous the previous tabs.
20
+ * @param deleted the ids of the chats that have been deleted.
21
+ */
22
+ private reselect;
23
+ /**
24
+ * Removes chats from the tab view. This will never remove a chat if this chat is the last one.
25
+ *
26
+ * @param ids the ids of the chats to remove.
27
+ */
28
+ remove(...ids: string[]): void;
29
+ /**
30
+ * Removes all empty chats. The last chat will be kept if it's empty, but the only chat remaining.
31
+ *
32
+ * @param exceptions ids of chats that shouldn't be removed even if empty.
33
+ */
34
+ removeEmptyChats(...exceptions: string[]): void;
35
+ /**
36
+ * @param id the id of the chat to retrieve.
37
+ * @returns a ChatState corresponding to the id.
38
+ */
39
+ get(id: string): ChatState | undefined;
40
+ /**
41
+ * @returns the id of the chat corresponding to the tab that is currently active.
42
+ */
43
+ getActiveChatId(): string;
44
+ /**
45
+ * @returns the chat corresponding to the tab that is currently active.
46
+ */
47
+ getActiveChat(): ChatState;
48
+ /**
49
+ * @returns all chats in tab view.
50
+ */
51
+ getAll(): ChatState[];
52
+ /**
53
+ * Watches for changes in the tab view.
54
+ * @param listener a function called whenever a tab is added, removed or selected. This function receives the list of chats as the first
55
+ * parameter and the id of the active chat as the second parameter.
56
+ * @returns a function to remove the listener.
57
+ */
58
+ onChange(listener: TabChangeListener): () => void;
59
+ /**
60
+ * Changes the chat (tab) that is currently active.
61
+ * @param id the id of the chat to select.
62
+ */
63
+ select(id: string): void;
64
+ }
65
+ export {};
66
+ //# sourceMappingURL=ChatTabsController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatTabsController.d.ts","sourceRoot":"","sources":["../../src/state/ChatTabsController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,KAAK,iBAAiB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;AAExE;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,GAAG,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE;IAMzB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE;IASvB;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE;IAYxC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM;IAId;;OAEG;IACH,eAAe;IAIf;;OAEG;IACH,aAAa;IAMb;;OAEG;IACH,MAAM;IAIN;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IAOpC;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM;CAIlB"}
@@ -0,0 +1,116 @@
1
+ import { groupBy, last, pull } from 'lodash';
2
+ /**
3
+ * Controls the chat tabs.
4
+ */
5
+ export class ChatTabsController {
6
+ chats = [];
7
+ activeChatId = '';
8
+ listeners = [];
9
+ runListeners() {
10
+ this.listeners.forEach(l => l(this.chats, this.getActiveChat()));
11
+ }
12
+ /**
13
+ * Adds new chats to the tab view.
14
+ * @param chats the chats to add.
15
+ */
16
+ add(...chats) {
17
+ if (!chats.length)
18
+ return;
19
+ this.chats = [...this.chats, ...chats];
20
+ this.runListeners();
21
+ }
22
+ /**
23
+ * If the active chat is deleted, this selects a new chat based on the position of the chat that has been removed.
24
+ *
25
+ * @param previous the previous tabs.
26
+ * @param deleted the ids of the chats that have been deleted.
27
+ */
28
+ reselect(previous, deleted) {
29
+ if (deleted.includes(this.activeChatId)) {
30
+ const currentActiveIndex = previous.findIndex(c => c.id === this.activeChatId);
31
+ if (currentActiveIndex === -1)
32
+ this.activeChatId = this.chats[0]?.id;
33
+ this.activeChatId = currentActiveIndex < this.chats.length ? this.chats[currentActiveIndex].id : last(this.chats)?.id ?? '';
34
+ }
35
+ }
36
+ /**
37
+ * Removes chats from the tab view. This will never remove a chat if this chat is the last one.
38
+ *
39
+ * @param ids the ids of the chats to remove.
40
+ */
41
+ remove(...ids) {
42
+ ids.splice(this.chats.length - 1, ids.length - this.chats.length);
43
+ if (!ids.length)
44
+ return;
45
+ const previous = this.chats;
46
+ this.chats = this.chats.filter(c => !ids.includes(c.id));
47
+ this.reselect(previous, ids);
48
+ this.runListeners();
49
+ }
50
+ /**
51
+ * Removes all empty chats. The last chat will be kept if it's empty, but the only chat remaining.
52
+ *
53
+ * @param exceptions ids of chats that shouldn't be removed even if empty.
54
+ */
55
+ removeEmptyChats(...exceptions) {
56
+ const lastChat = last(this.chats);
57
+ const previous = this.chats;
58
+ const { true: removed, false: kept = [] } = groupBy(this.chats, c => c.getMessages().length === 0 && !exceptions.includes(c.id));
59
+ if (removed) {
60
+ this.chats = kept;
61
+ if (lastChat && this.chats.length === 0)
62
+ this.chats.push(lastChat);
63
+ this.reselect(previous, removed.map(c => c.id));
64
+ this.runListeners();
65
+ }
66
+ }
67
+ /**
68
+ * @param id the id of the chat to retrieve.
69
+ * @returns a ChatState corresponding to the id.
70
+ */
71
+ get(id) {
72
+ return this.chats.find(c => c.id === id);
73
+ }
74
+ /**
75
+ * @returns the id of the chat corresponding to the tab that is currently active.
76
+ */
77
+ getActiveChatId() {
78
+ return this.activeChatId;
79
+ }
80
+ /**
81
+ * @returns the chat corresponding to the tab that is currently active.
82
+ */
83
+ getActiveChat() {
84
+ const chat = this.chats.find(c => c.id === this.activeChatId);
85
+ if (!chat)
86
+ throw new Error('Chat state error, the active chat id corresponds to none chat in the tabs.');
87
+ return chat;
88
+ }
89
+ /**
90
+ * @returns all chats in tab view.
91
+ */
92
+ getAll() {
93
+ return this.chats;
94
+ }
95
+ /**
96
+ * Watches for changes in the tab view.
97
+ * @param listener a function called whenever a tab is added, removed or selected. This function receives the list of chats as the first
98
+ * parameter and the id of the active chat as the second parameter.
99
+ * @returns a function to remove the listener.
100
+ */
101
+ onChange(listener) {
102
+ this.listeners.push(listener);
103
+ return () => {
104
+ pull(this.listeners, listener);
105
+ };
106
+ }
107
+ /**
108
+ * Changes the chat (tab) that is currently active.
109
+ * @param id the id of the chat to select.
110
+ */
111
+ select(id) {
112
+ this.activeChatId = id;
113
+ this.runListeners();
114
+ }
115
+ }
116
+ //# sourceMappingURL=ChatTabsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatTabsController.js","sourceRoot":"","sources":["../../src/state/ChatTabsController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export type ObservableStateListener<T, K extends keyof T> = (value: T[K]) => void;
2
+ /**
3
+ * A generic representation of a state that can be observed for changes.
4
+ *
5
+ * Building our own state instead of using React is important because:
6
+ * 1. We need to be able to control it even outside the react context.
7
+ * 2. We need performance, we can't have everything re-rendering because something changes. We need to be careful to watch only the
8
+ * properties we need in a component.
9
+ */
10
+ export declare class ObservableState<T> {
11
+ protected state: T;
12
+ private listeners;
13
+ constructor(initial: T);
14
+ set<K extends keyof T>(key: K, value: T[K]): void;
15
+ get<K extends keyof T>(key: K): T[K];
16
+ /**
17
+ * Watches for changes in the state referred by the provided key.
18
+ * @param key the key of the state to watch.
19
+ * @param listener a function called whenever the value of the state referred by `key` changes.
20
+ * @returns a function to remove the listener.
21
+ */
22
+ onChange<K extends keyof T>(key: K, listener: (value: T[K]) => void): () => void;
23
+ }
24
+ //# sourceMappingURL=ObservableState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservableState.d.ts","sourceRoot":"","sources":["../../src/state/ObservableState.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,uBAAuB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAMjF;;;;;;;GAOG;AACH,qBAAa,eAAe,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;IAClB,OAAO,CAAC,SAAS,CAAmB;gBAExB,OAAO,EAAE,CAAC;IAItB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAO1C,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAIpC;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;CAOpE"}
@@ -0,0 +1,39 @@
1
+ import { pull } from 'lodash';
2
+ /**
3
+ * A generic representation of a state that can be observed for changes.
4
+ *
5
+ * Building our own state instead of using React is important because:
6
+ * 1. We need to be able to control it even outside the react context.
7
+ * 2. We need performance, we can't have everything re-rendering because something changes. We need to be careful to watch only the
8
+ * properties we need in a component.
9
+ */
10
+ export class ObservableState {
11
+ state;
12
+ listeners = {};
13
+ constructor(initial) {
14
+ this.state = { ...initial };
15
+ }
16
+ set(key, value) {
17
+ if (this.state[key] !== value) {
18
+ this.state[key] = value;
19
+ this.listeners[key]?.forEach(l => l(value));
20
+ }
21
+ }
22
+ get(key) {
23
+ return this.state[key];
24
+ }
25
+ /**
26
+ * Watches for changes in the state referred by the provided key.
27
+ * @param key the key of the state to watch.
28
+ * @param listener a function called whenever the value of the state referred by `key` changes.
29
+ * @returns a function to remove the listener.
30
+ */
31
+ onChange(key, listener) {
32
+ this.listeners[key] ??= [];
33
+ this.listeners[key].push(listener);
34
+ return () => {
35
+ pull(this.listeners[key], listener);
36
+ };
37
+ }
38
+ }
39
+ //# sourceMappingURL=ObservableState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservableState.js","sourceRoot":"","sources":["../../src/state/ObservableState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAQ7B;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAChB,KAAK,CAAG;IACV,SAAS,GAAiB,EAAE,CAAA;IAEpC,YAAY,OAAU;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,GAAG,CAAoB,GAAM,EAAE,KAAW;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,GAAG,CAAoB,GAAM;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAoB,GAAM,EAAE,QAA+B;QACjE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,EAAE,QAAQ,CAAC,CAAA;QACtC,CAAC,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,86 @@
1
+ import { AIWidgetFeatures, ChatFeatures, GlobalFeatures } from '../features.js';
2
+ import { ChatEntry } from './ChatEntry.js';
3
+ import { ChatPropertiesWithOptionalFeatures, ChatState, MessageInterceptor } from './ChatState.js';
4
+ import { ChatTabsController } from './ChatTabsController.js';
5
+ import { ObservableState } from './ObservableState.js';
6
+ export interface WidgetProperties {
7
+ /**
8
+ * Current content of the right panel. Undefined for closed right panel.
9
+ */
10
+ panel?: 'stack' | 'workspace' | 'agent' | 'ks' | 'editor' | 'history' | 'ks-details' | 'steps' | 'tools' | 'resources';
11
+ /**
12
+ * KS to use when the right panel "ks-details" is open.
13
+ */
14
+ currentKSInPanel?: {
15
+ name: string;
16
+ slug: string;
17
+ score: number;
18
+ documentId: string;
19
+ };
20
+ /**
21
+ * The message to show in the tools panel or the steps panel.
22
+ */
23
+ currentMessageInPanel?: {
24
+ chatId: string;
25
+ messageId: number;
26
+ };
27
+ /**
28
+ * Whether or not the widget is in its minimized version.
29
+ */
30
+ isMinimized?: boolean;
31
+ /**
32
+ * Global features of the chat widget. These features don't depend on the chat currently selected.
33
+ */
34
+ features: GlobalFeatures;
35
+ }
36
+ interface Options {
37
+ /**
38
+ * Chat interceptors allows you to intercept chat messages, interpret them, modify them and even change the chat flow. See
39
+ * {@link ChatState} for more details.
40
+ *
41
+ * These interceptors, in addition to the default interceptors, will be used when creating a new chat via `WidgetState#createChat`.
42
+ */
43
+ interceptors?: MessageInterceptor[];
44
+ /**
45
+ * Features to enable in the widget. If a feature is not set explicitly to false, it's interpreted as enabled.
46
+ *
47
+ * These features will be used when creating a new chat via `WidgetState#createChat`. Updating chat features only influence new chats.
48
+ */
49
+ features?: Partial<AIWidgetFeatures>;
50
+ /**
51
+ * The initial values for the widget state.
52
+ *
53
+ * The default value for each feature under `initial.features` is true.
54
+ */
55
+ initial?: Omit<WidgetProperties, 'features'>;
56
+ /**
57
+ * The initial tabs for the chat window.
58
+ */
59
+ chatTabs?: ChatTabsController;
60
+ }
61
+ /**
62
+ * Holds the full state of the AI Chat Widget.
63
+ *
64
+ * This can be used to fully control the chat widget. This is the model of what gets rendered to the screen.
65
+ */
66
+ export declare class WidgetState extends ObservableState<WidgetProperties> {
67
+ readonly chatTabs: ChatTabsController;
68
+ /**
69
+ * Chat interceptors to be used by default when creating a new chat.
70
+ */
71
+ interceptors: MessageInterceptor[];
72
+ /**
73
+ * Chat features to be used by default when creating a new chat.
74
+ */
75
+ chatFeatures: ChatFeatures;
76
+ constructor({ chatTabs, initial, interceptors, features }?: Options);
77
+ /**
78
+ * Utility function for adding a new chat to the chat tabs. This also selects the new tab.
79
+ * @param properties the chat properties (initial state).
80
+ * @param entries the entries for the chat to start with.
81
+ * @returns the chat created.
82
+ */
83
+ createChat({ label, ...properties }?: Partial<ChatPropertiesWithOptionalFeatures>, entries?: ChatEntry[]): ChatState;
84
+ }
85
+ export {};
86
+ //# sourceMappingURL=WidgetState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetState.d.ts","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAA2B,cAAc,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kCAAkC,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC;IACvH;;OAEG;IACH,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrF;;OAEG;IACH,qBAAqB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,UAAU,OAAO;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,eAAe,CAAC,gBAAgB,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAA;IACrC;;OAEG;IACH,YAAY,EAAE,kBAAkB,EAAE,CAAK;IACvC;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;gBAEd,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAiB,EAAE,QAAQ,EAAE,GAAE,OAAY;IAc5E;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAE,OAAO,CAAC,kCAAkC,CAAM,EAAE,OAAO,GAAE,SAAS,EAAO;CAYjH"}