@stack-spot/ai-chat-widget 1.7.2 → 1.8.1

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 (402) hide show
  1. package/package.json +1 -1
  2. package/src/app-metadata.json +2 -2
  3. package/src/views/MessageInput/chat-entry-history.ts +97 -0
  4. package/src/views/MessageInput/index.tsx +7 -1
  5. package/dist/AbortedError.d.ts +0 -5
  6. package/dist/AbortedError.d.ts.map +0 -1
  7. package/dist/AbortedError.js +0 -7
  8. package/dist/AbortedError.js.map +0 -1
  9. package/dist/StackspotAIWidget.d.ts +0 -23
  10. package/dist/StackspotAIWidget.d.ts.map +0 -1
  11. package/dist/StackspotAIWidget.js +0 -35
  12. package/dist/StackspotAIWidget.js.map +0 -1
  13. package/dist/app-metadata.json +0 -151
  14. package/dist/chat-interceptors/CustomInputs.d.ts +0 -22
  15. package/dist/chat-interceptors/CustomInputs.d.ts.map +0 -1
  16. package/dist/chat-interceptors/CustomInputs.js +0 -71
  17. package/dist/chat-interceptors/CustomInputs.js.map +0 -1
  18. package/dist/chat-interceptors/quick-command-questions.d.ts +0 -14
  19. package/dist/chat-interceptors/quick-command-questions.d.ts.map +0 -1
  20. package/dist/chat-interceptors/quick-command-questions.js +0 -28
  21. package/dist/chat-interceptors/quick-command-questions.js.map +0 -1
  22. package/dist/chat-interceptors/quick-commands.d.ts +0 -17
  23. package/dist/chat-interceptors/quick-commands.d.ts.map +0 -1
  24. package/dist/chat-interceptors/quick-commands.js +0 -292
  25. package/dist/chat-interceptors/quick-commands.js.map +0 -1
  26. package/dist/chat-interceptors/send-message.d.ts +0 -14
  27. package/dist/chat-interceptors/send-message.d.ts.map +0 -1
  28. package/dist/chat-interceptors/send-message.js +0 -96
  29. package/dist/chat-interceptors/send-message.js.map +0 -1
  30. package/dist/components/Accordion.d.ts +0 -20
  31. package/dist/components/Accordion.d.ts.map +0 -1
  32. package/dist/components/Accordion.js +0 -49
  33. package/dist/components/Accordion.js.map +0 -1
  34. package/dist/components/AdaptiveTextArea.d.ts +0 -22
  35. package/dist/components/AdaptiveTextArea.d.ts.map +0 -1
  36. package/dist/components/AdaptiveTextArea.js +0 -39
  37. package/dist/components/AdaptiveTextArea.js.map +0 -1
  38. package/dist/components/AutoFocus.d.ts +0 -23
  39. package/dist/components/AutoFocus.d.ts.map +0 -1
  40. package/dist/components/AutoFocus.js +0 -23
  41. package/dist/components/AutoFocus.js.map +0 -1
  42. package/dist/components/Code.d.ts +0 -19
  43. package/dist/components/Code.d.ts.map +0 -1
  44. package/dist/components/Code.js +0 -118
  45. package/dist/components/Code.js.map +0 -1
  46. package/dist/components/Fading.d.ts +0 -32
  47. package/dist/components/Fading.d.ts.map +0 -1
  48. package/dist/components/Fading.js +0 -33
  49. package/dist/components/Fading.js.map +0 -1
  50. package/dist/components/FadingOverflow.d.ts +0 -37
  51. package/dist/components/FadingOverflow.d.ts.map +0 -1
  52. package/dist/components/FadingOverflow.js +0 -225
  53. package/dist/components/FadingOverflow.js.map +0 -1
  54. package/dist/components/FallbackBoundary/ErrorBoundary.d.ts +0 -33
  55. package/dist/components/FallbackBoundary/ErrorBoundary.d.ts.map +0 -1
  56. package/dist/components/FallbackBoundary/ErrorBoundary.js +0 -52
  57. package/dist/components/FallbackBoundary/ErrorBoundary.js.map +0 -1
  58. package/dist/components/FallbackBoundary/Loading.d.ts +0 -2
  59. package/dist/components/FallbackBoundary/Loading.d.ts.map +0 -1
  60. package/dist/components/FallbackBoundary/Loading.js +0 -12
  61. package/dist/components/FallbackBoundary/Loading.js.map +0 -1
  62. package/dist/components/FallbackBoundary/index.d.ts +0 -17
  63. package/dist/components/FallbackBoundary/index.d.ts.map +0 -1
  64. package/dist/components/FallbackBoundary/index.js +0 -9
  65. package/dist/components/FallbackBoundary/index.js.map +0 -1
  66. package/dist/components/HistoryList.d.ts +0 -25
  67. package/dist/components/HistoryList.d.ts.map +0 -1
  68. package/dist/components/HistoryList.js +0 -74
  69. package/dist/components/HistoryList.js.map +0 -1
  70. package/dist/components/IconInput.d.ts +0 -10
  71. package/dist/components/IconInput.d.ts.map +0 -1
  72. package/dist/components/IconInput.js +0 -61
  73. package/dist/components/IconInput.js.map +0 -1
  74. package/dist/components/Markdown.d.ts +0 -9
  75. package/dist/components/Markdown.d.ts.map +0 -1
  76. package/dist/components/Markdown.js +0 -17
  77. package/dist/components/Markdown.js.map +0 -1
  78. package/dist/components/OverlayMenu.d.ts +0 -21
  79. package/dist/components/OverlayMenu.d.ts.map +0 -1
  80. package/dist/components/OverlayMenu.js +0 -79
  81. package/dist/components/OverlayMenu.js.map +0 -1
  82. package/dist/components/ProgressBar.d.ts +0 -33
  83. package/dist/components/ProgressBar.d.ts.map +0 -1
  84. package/dist/components/ProgressBar.js +0 -131
  85. package/dist/components/ProgressBar.js.map +0 -1
  86. package/dist/components/QuickStartButton.d.ts +0 -13
  87. package/dist/components/QuickStartButton.d.ts.map +0 -1
  88. package/dist/components/QuickStartButton.js +0 -47
  89. package/dist/components/QuickStartButton.js.map +0 -1
  90. package/dist/components/RightPanelForm.d.ts +0 -8
  91. package/dist/components/RightPanelForm.d.ts.map +0 -1
  92. package/dist/components/RightPanelForm.js +0 -50
  93. package/dist/components/RightPanelForm.js.map +0 -1
  94. package/dist/components/RightPanelTabs.d.ts +0 -13
  95. package/dist/components/RightPanelTabs.d.ts.map +0 -1
  96. package/dist/components/RightPanelTabs.js +0 -24
  97. package/dist/components/RightPanelTabs.js.map +0 -1
  98. package/dist/components/Selector/index.d.ts +0 -24
  99. package/dist/components/Selector/index.d.ts.map +0 -1
  100. package/dist/components/Selector/index.js +0 -134
  101. package/dist/components/Selector/index.js.map +0 -1
  102. package/dist/components/Selector/styled.d.ts +0 -2
  103. package/dist/components/Selector/styled.d.ts.map +0 -1
  104. package/dist/components/Selector/styled.js +0 -153
  105. package/dist/components/Selector/styled.js.map +0 -1
  106. package/dist/components/TabManager.d.ts +0 -40
  107. package/dist/components/TabManager.d.ts.map +0 -1
  108. package/dist/components/TabManager.js +0 -166
  109. package/dist/components/TabManager.js.map +0 -1
  110. package/dist/components/Tooltip/Tooltip.d.ts +0 -37
  111. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  112. package/dist/components/Tooltip/Tooltip.js +0 -30
  113. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  114. package/dist/components/Tooltip/TooltipAPI.d.ts +0 -29
  115. package/dist/components/Tooltip/TooltipAPI.d.ts.map +0 -1
  116. package/dist/components/Tooltip/TooltipAPI.js +0 -107
  117. package/dist/components/Tooltip/TooltipAPI.js.map +0 -1
  118. package/dist/components/Tooltip/context.d.ts +0 -5
  119. package/dist/components/Tooltip/context.d.ts.map +0 -1
  120. package/dist/components/Tooltip/context.js +0 -18
  121. package/dist/components/Tooltip/context.js.map +0 -1
  122. package/dist/components/Tooltip/index.d.ts +0 -3
  123. package/dist/components/Tooltip/index.d.ts.map +0 -1
  124. package/dist/components/Tooltip/index.js +0 -3
  125. package/dist/components/Tooltip/index.js.map +0 -1
  126. package/dist/components/Tooltip/style.d.ts +0 -4
  127. package/dist/components/Tooltip/style.d.ts.map +0 -1
  128. package/dist/components/Tooltip/style.js +0 -22
  129. package/dist/components/Tooltip/style.js.map +0 -1
  130. package/dist/components/Tooltip/types.d.ts +0 -27
  131. package/dist/components/Tooltip/types.d.ts.map +0 -1
  132. package/dist/components/Tooltip/types.js +0 -2
  133. package/dist/components/Tooltip/types.js.map +0 -1
  134. package/dist/components/form/DescribedCheckboxGroup.d.ts +0 -7
  135. package/dist/components/form/DescribedCheckboxGroup.d.ts.map +0 -1
  136. package/dist/components/form/DescribedCheckboxGroup.js +0 -27
  137. package/dist/components/form/DescribedCheckboxGroup.js.map +0 -1
  138. package/dist/components/form/DescribedRadioGroup.d.ts +0 -7
  139. package/dist/components/form/DescribedRadioGroup.d.ts.map +0 -1
  140. package/dist/components/form/DescribedRadioGroup.js +0 -22
  141. package/dist/components/form/DescribedRadioGroup.js.map +0 -1
  142. package/dist/components/form/styled.d.ts +0 -2
  143. package/dist/components/form/styled.d.ts.map +0 -1
  144. package/dist/components/form/styled.js +0 -42
  145. package/dist/components/form/styled.js.map +0 -1
  146. package/dist/components/form/types.d.ts +0 -53
  147. package/dist/components/form/types.d.ts.map +0 -1
  148. package/dist/components/form/types.js +0 -2
  149. package/dist/components/form/types.js.map +0 -1
  150. package/dist/context/AIWidgetProvider.d.ts +0 -23
  151. package/dist/context/AIWidgetProvider.d.ts.map +0 -1
  152. package/dist/context/AIWidgetProvider.js +0 -23
  153. package/dist/context/AIWidgetProvider.js.map +0 -1
  154. package/dist/context/hooks.d.ts +0 -69
  155. package/dist/context/hooks.d.ts.map +0 -1
  156. package/dist/context/hooks.js +0 -121
  157. package/dist/context/hooks.js.map +0 -1
  158. package/dist/features.d.ts +0 -40
  159. package/dist/features.d.ts.map +0 -1
  160. package/dist/features.js +0 -18
  161. package/dist/features.js.map +0 -1
  162. package/dist/index.d.ts +0 -14
  163. package/dist/index.d.ts.map +0 -1
  164. package/dist/index.js +0 -12
  165. package/dist/index.js.map +0 -1
  166. package/dist/layout.css +0 -137
  167. package/dist/regex.d.ts +0 -3
  168. package/dist/regex.d.ts.map +0 -1
  169. package/dist/regex.js +0 -3
  170. package/dist/regex.js.map +0 -1
  171. package/dist/right-panel/DefaultPanel.d.ts +0 -12
  172. package/dist/right-panel/DefaultPanel.d.ts.map +0 -1
  173. package/dist/right-panel/DefaultPanel.js +0 -50
  174. package/dist/right-panel/DefaultPanel.js.map +0 -1
  175. package/dist/right-panel/RightPanel.d.ts +0 -5
  176. package/dist/right-panel/RightPanel.d.ts.map +0 -1
  177. package/dist/right-panel/RightPanel.js +0 -9
  178. package/dist/right-panel/RightPanel.js.map +0 -1
  179. package/dist/right-panel/RightPanelProvider.d.ts +0 -28
  180. package/dist/right-panel/RightPanelProvider.d.ts.map +0 -1
  181. package/dist/right-panel/RightPanelProvider.js +0 -10
  182. package/dist/right-panel/RightPanelProvider.js.map +0 -1
  183. package/dist/right-panel/constants.d.ts +0 -2
  184. package/dist/right-panel/constants.d.ts.map +0 -1
  185. package/dist/right-panel/constants.js +0 -2
  186. package/dist/right-panel/constants.js.map +0 -1
  187. package/dist/right-panel/hooks.d.ts +0 -19
  188. package/dist/right-panel/hooks.d.ts.map +0 -1
  189. package/dist/right-panel/hooks.js +0 -46
  190. package/dist/right-panel/hooks.js.map +0 -1
  191. package/dist/state/ChatEntry.d.ts +0 -112
  192. package/dist/state/ChatEntry.d.ts.map +0 -1
  193. package/dist/state/ChatEntry.js +0 -59
  194. package/dist/state/ChatEntry.js.map +0 -1
  195. package/dist/state/ChatState.d.ts +0 -154
  196. package/dist/state/ChatState.d.ts.map +0 -1
  197. package/dist/state/ChatState.js +0 -108
  198. package/dist/state/ChatState.js.map +0 -1
  199. package/dist/state/ChatTabsController.d.ts +0 -66
  200. package/dist/state/ChatTabsController.d.ts.map +0 -1
  201. package/dist/state/ChatTabsController.js +0 -116
  202. package/dist/state/ChatTabsController.js.map +0 -1
  203. package/dist/state/ObservableState.d.ts +0 -24
  204. package/dist/state/ObservableState.d.ts.map +0 -1
  205. package/dist/state/ObservableState.js +0 -39
  206. package/dist/state/ObservableState.js.map +0 -1
  207. package/dist/state/WidgetState.d.ts +0 -80
  208. package/dist/state/WidgetState.d.ts.map +0 -1
  209. package/dist/state/WidgetState.js +0 -68
  210. package/dist/state/WidgetState.js.map +0 -1
  211. package/dist/state/types.d.ts +0 -8
  212. package/dist/state/types.d.ts.map +0 -1
  213. package/dist/state/types.js +0 -2
  214. package/dist/state/types.js.map +0 -1
  215. package/dist/types.d.ts +0 -27
  216. package/dist/types.d.ts.map +0 -1
  217. package/dist/types.js +0 -2
  218. package/dist/types.js.map +0 -1
  219. package/dist/utils/chat.d.ts +0 -12
  220. package/dist/utils/chat.d.ts.map +0 -1
  221. package/dist/utils/chat.js +0 -26
  222. package/dist/utils/chat.js.map +0 -1
  223. package/dist/utils/date.d.ts +0 -32
  224. package/dist/utils/date.d.ts.map +0 -1
  225. package/dist/utils/date.js +0 -66
  226. package/dist/utils/date.js.map +0 -1
  227. package/dist/utils/download.d.ts +0 -7
  228. package/dist/utils/download.d.ts.map +0 -1
  229. package/dist/utils/download.js +0 -15
  230. package/dist/utils/download.js.map +0 -1
  231. package/dist/utils/knowledge-source.d.ts +0 -19
  232. package/dist/utils/knowledge-source.d.ts.map +0 -1
  233. package/dist/utils/knowledge-source.js +0 -60
  234. package/dist/utils/knowledge-source.js.map +0 -1
  235. package/dist/utils/programming-languages.d.ts +0 -7
  236. package/dist/utils/programming-languages.d.ts.map +0 -1
  237. package/dist/utils/programming-languages.js +0 -464
  238. package/dist/utils/programming-languages.js.map +0 -1
  239. package/dist/utils/string.d.ts +0 -7
  240. package/dist/utils/string.d.ts.map +0 -1
  241. package/dist/utils/string.js +0 -11
  242. package/dist/utils/string.js.map +0 -1
  243. package/dist/utils/url.d.ts +0 -2
  244. package/dist/utils/url.d.ts.map +0 -1
  245. package/dist/utils/url.js +0 -8
  246. package/dist/utils/url.js.map +0 -1
  247. package/dist/views/Agents/AgentDescription.d.ts +0 -9
  248. package/dist/views/Agents/AgentDescription.d.ts.map +0 -1
  249. package/dist/views/Agents/AgentDescription.js +0 -21
  250. package/dist/views/Agents/AgentDescription.js.map +0 -1
  251. package/dist/views/Agents/AgentsPanel.d.ts +0 -5
  252. package/dist/views/Agents/AgentsPanel.d.ts.map +0 -1
  253. package/dist/views/Agents/AgentsPanel.js +0 -19
  254. package/dist/views/Agents/AgentsPanel.js.map +0 -1
  255. package/dist/views/Agents/AgentsTab.d.ts +0 -5
  256. package/dist/views/Agents/AgentsTab.d.ts.map +0 -1
  257. package/dist/views/Agents/AgentsTab.js +0 -43
  258. package/dist/views/Agents/AgentsTab.js.map +0 -1
  259. package/dist/views/Agents/dictionary.d.ts +0 -2
  260. package/dist/views/Agents/dictionary.d.ts.map +0 -1
  261. package/dist/views/Agents/dictionary.js +0 -35
  262. package/dist/views/Agents/dictionary.js.map +0 -1
  263. package/dist/views/Agents/index.d.ts +0 -5
  264. package/dist/views/Agents/index.d.ts.map +0 -1
  265. package/dist/views/Agents/index.js +0 -21
  266. package/dist/views/Agents/index.js.map +0 -1
  267. package/dist/views/Agents/styled.d.ts +0 -3
  268. package/dist/views/Agents/styled.d.ts.map +0 -1
  269. package/dist/views/Agents/styled.js +0 -58
  270. package/dist/views/Agents/styled.js.map +0 -1
  271. package/dist/views/Chat/AgentInfo.d.ts +0 -10
  272. package/dist/views/Chat/AgentInfo.d.ts.map +0 -1
  273. package/dist/views/Chat/AgentInfo.js +0 -10
  274. package/dist/views/Chat/AgentInfo.js.map +0 -1
  275. package/dist/views/Chat/ChatMessage.d.ts +0 -22
  276. package/dist/views/Chat/ChatMessage.d.ts.map +0 -1
  277. package/dist/views/Chat/ChatMessage.js +0 -82
  278. package/dist/views/Chat/ChatMessage.js.map +0 -1
  279. package/dist/views/Chat/ChatMessages.d.ts +0 -10
  280. package/dist/views/Chat/ChatMessages.d.ts.map +0 -1
  281. package/dist/views/Chat/ChatMessages.js +0 -15
  282. package/dist/views/Chat/ChatMessages.js.map +0 -1
  283. package/dist/views/Chat/chat-scroll.d.ts +0 -7
  284. package/dist/views/Chat/chat-scroll.d.ts.map +0 -1
  285. package/dist/views/Chat/chat-scroll.js +0 -17
  286. package/dist/views/Chat/chat-scroll.js.map +0 -1
  287. package/dist/views/Chat/events.d.ts +0 -22
  288. package/dist/views/Chat/events.d.ts.map +0 -1
  289. package/dist/views/Chat/events.js +0 -66
  290. package/dist/views/Chat/events.js.map +0 -1
  291. package/dist/views/Chat/index.d.ts +0 -12
  292. package/dist/views/Chat/index.d.ts.map +0 -1
  293. package/dist/views/Chat/index.js +0 -11
  294. package/dist/views/Chat/index.js.map +0 -1
  295. package/dist/views/Chat/styled.d.ts +0 -2
  296. package/dist/views/Chat/styled.d.ts.map +0 -1
  297. package/dist/views/Chat/styled.js +0 -186
  298. package/dist/views/Chat/styled.js.map +0 -1
  299. package/dist/views/ChatHistory/ChatHistoryPanel.d.ts +0 -5
  300. package/dist/views/ChatHistory/ChatHistoryPanel.d.ts.map +0 -1
  301. package/dist/views/ChatHistory/ChatHistoryPanel.js +0 -14
  302. package/dist/views/ChatHistory/ChatHistoryPanel.js.map +0 -1
  303. package/dist/views/ChatHistory/HistoryItem.d.ts +0 -8
  304. package/dist/views/ChatHistory/HistoryItem.d.ts.map +0 -1
  305. package/dist/views/ChatHistory/HistoryItem.js +0 -130
  306. package/dist/views/ChatHistory/HistoryItem.js.map +0 -1
  307. package/dist/views/ChatHistory/dictionary.d.ts +0 -2
  308. package/dist/views/ChatHistory/dictionary.d.ts.map +0 -1
  309. package/dist/views/ChatHistory/dictionary.js +0 -19
  310. package/dist/views/ChatHistory/dictionary.js.map +0 -1
  311. package/dist/views/ChatHistory/index.d.ts +0 -5
  312. package/dist/views/ChatHistory/index.d.ts.map +0 -1
  313. package/dist/views/ChatHistory/index.js +0 -26
  314. package/dist/views/ChatHistory/index.js.map +0 -1
  315. package/dist/views/ChatHistory/styled.d.ts +0 -2
  316. package/dist/views/ChatHistory/styled.d.ts.map +0 -1
  317. package/dist/views/ChatHistory/styled.js +0 -60
  318. package/dist/views/ChatHistory/styled.js.map +0 -1
  319. package/dist/views/ChatHistory/utils.d.ts +0 -20
  320. package/dist/views/ChatHistory/utils.d.ts.map +0 -1
  321. package/dist/views/ChatHistory/utils.js +0 -53
  322. package/dist/views/ChatHistory/utils.js.map +0 -1
  323. package/dist/views/ChatTabSelection.d.ts +0 -5
  324. package/dist/views/ChatTabSelection.d.ts.map +0 -1
  325. package/dist/views/ChatTabSelection.js +0 -48
  326. package/dist/views/ChatTabSelection.js.map +0 -1
  327. package/dist/views/Editor.d.ts +0 -5
  328. package/dist/views/Editor.d.ts.map +0 -1
  329. package/dist/views/Editor.js +0 -96
  330. package/dist/views/Editor.js.map +0 -1
  331. package/dist/views/Home/BuiltInAgent.d.ts +0 -6
  332. package/dist/views/Home/BuiltInAgent.d.ts.map +0 -1
  333. package/dist/views/Home/BuiltInAgent.js +0 -39
  334. package/dist/views/Home/BuiltInAgent.js.map +0 -1
  335. package/dist/views/Home/CustomAgent.d.ts +0 -5
  336. package/dist/views/Home/CustomAgent.d.ts.map +0 -1
  337. package/dist/views/Home/CustomAgent.js +0 -24
  338. package/dist/views/Home/CustomAgent.js.map +0 -1
  339. package/dist/views/Home/index.d.ts +0 -8
  340. package/dist/views/Home/index.d.ts.map +0 -1
  341. package/dist/views/Home/index.js +0 -15
  342. package/dist/views/Home/index.js.map +0 -1
  343. package/dist/views/Home/styled.d.ts +0 -2
  344. package/dist/views/Home/styled.d.ts.map +0 -1
  345. package/dist/views/Home/styled.js +0 -59
  346. package/dist/views/Home/styled.js.map +0 -1
  347. package/dist/views/Home/types.d.ts +0 -7
  348. package/dist/views/Home/types.d.ts.map +0 -1
  349. package/dist/views/Home/types.js +0 -2
  350. package/dist/views/Home/types.js.map +0 -1
  351. package/dist/views/KSDocument.d.ts +0 -5
  352. package/dist/views/KSDocument.d.ts.map +0 -1
  353. package/dist/views/KSDocument.js +0 -43
  354. package/dist/views/KSDocument.js.map +0 -1
  355. package/dist/views/KnowledgeSources.d.ts +0 -2
  356. package/dist/views/KnowledgeSources.d.ts.map +0 -1
  357. package/dist/views/KnowledgeSources.js +0 -96
  358. package/dist/views/KnowledgeSources.js.map +0 -1
  359. package/dist/views/MessageInput/AgentSelector.d.ts +0 -4
  360. package/dist/views/MessageInput/AgentSelector.d.ts.map +0 -1
  361. package/dist/views/MessageInput/AgentSelector.js +0 -58
  362. package/dist/views/MessageInput/AgentSelector.js.map +0 -1
  363. package/dist/views/MessageInput/ButtonAgent.d.ts +0 -2
  364. package/dist/views/MessageInput/ButtonAgent.d.ts.map +0 -1
  365. package/dist/views/MessageInput/ButtonAgent.js +0 -17
  366. package/dist/views/MessageInput/ButtonAgent.js.map +0 -1
  367. package/dist/views/MessageInput/ButtonGroup.d.ts +0 -29
  368. package/dist/views/MessageInput/ButtonGroup.d.ts.map +0 -1
  369. package/dist/views/MessageInput/ButtonGroup.js +0 -34
  370. package/dist/views/MessageInput/ButtonGroup.js.map +0 -1
  371. package/dist/views/MessageInput/InfoBar.d.ts +0 -9
  372. package/dist/views/MessageInput/InfoBar.d.ts.map +0 -1
  373. package/dist/views/MessageInput/InfoBar.js +0 -52
  374. package/dist/views/MessageInput/InfoBar.js.map +0 -1
  375. package/dist/views/MessageInput/QuickCommandSelector.d.ts +0 -4
  376. package/dist/views/MessageInput/QuickCommandSelector.d.ts.map +0 -1
  377. package/dist/views/MessageInput/QuickCommandSelector.js +0 -34
  378. package/dist/views/MessageInput/QuickCommandSelector.js.map +0 -1
  379. package/dist/views/MessageInput/dictionary.d.ts +0 -2
  380. package/dist/views/MessageInput/dictionary.d.ts.map +0 -1
  381. package/dist/views/MessageInput/dictionary.js +0 -43
  382. package/dist/views/MessageInput/dictionary.js.map +0 -1
  383. package/dist/views/MessageInput/index.d.ts +0 -7
  384. package/dist/views/MessageInput/index.d.ts.map +0 -1
  385. package/dist/views/MessageInput/index.js +0 -59
  386. package/dist/views/MessageInput/index.js.map +0 -1
  387. package/dist/views/MessageInput/styled.d.ts +0 -4
  388. package/dist/views/MessageInput/styled.d.ts.map +0 -1
  389. package/dist/views/MessageInput/styled.js +0 -257
  390. package/dist/views/MessageInput/styled.js.map +0 -1
  391. package/dist/views/MinimizedHeader.d.ts +0 -7
  392. package/dist/views/MinimizedHeader.d.ts.map +0 -1
  393. package/dist/views/MinimizedHeader.js +0 -79
  394. package/dist/views/MinimizedHeader.js.map +0 -1
  395. package/dist/views/Stacks.d.ts +0 -5
  396. package/dist/views/Stacks.d.ts.map +0 -1
  397. package/dist/views/Stacks.js +0 -80
  398. package/dist/views/Stacks.js.map +0 -1
  399. package/dist/views/Workspaces.d.ts +0 -5
  400. package/dist/views/Workspaces.d.ts.map +0 -1
  401. package/dist/views/Workspaces.js +0 -66
  402. package/dist/views/Workspaces.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.7.2",
3
+ "version": "1.8.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.7.2",
4
- "date": "Thu Feb 13 2025 20:56:26 GMT+0000 (Coordinated Universal Time)",
3
+ "version": "1.8.0",
4
+ "date": "Thu Mar 13 2025 11:59:45 GMT-0300 (Brasilia Standard Time)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
@@ -0,0 +1,97 @@
1
+ import { useCallback, useEffect, useRef } from 'react'
2
+ import { useCurrentChat } from '../../context/hooks'
3
+
4
+ const DEFAULT_POINTER = -1
5
+
6
+ const useChatEntryHistory = () => {
7
+ const chat = useCurrentChat()
8
+ const historyPointer = useRef(DEFAULT_POINTER)
9
+ const messages = chat.getMessages()
10
+
11
+ useEffect(() => {
12
+ historyPointer.current = chat.getMessages().length
13
+ }, [chat.id, messages])
14
+
15
+ const navigateEntry = useCallback((startIndex: number, direction: 1 | -1, inputValue: string) => {
16
+ const chatEntries = chat.getMessages() || []
17
+ let pointer = startIndex + direction
18
+
19
+ while (pointer > DEFAULT_POINTER && pointer < chatEntries.length && chatEntries[pointer]?.getValue().agentType !== 'user') {
20
+ pointer += direction
21
+ }
22
+
23
+ if (pointer >= chatEntries.length + direction) {
24
+ return inputValue
25
+ }
26
+
27
+ if (pointer <= DEFAULT_POINTER) {
28
+ return chatEntries[0]?.getValue().content ?? inputValue
29
+ }
30
+
31
+ historyPointer.current = pointer
32
+ return chatEntries[pointer]?.getValue().content ?? inputValue
33
+ }, [chat])
34
+
35
+ const getPreviousUserEntry = useCallback((inputValue: string) => navigateEntry(historyPointer.current, -1, inputValue), [navigateEntry])
36
+ const getNextUserEntry = useCallback((inputValue: string) => navigateEntry(historyPointer.current, +1, inputValue), [navigateEntry])
37
+
38
+ return { getNextUserEntry, getPreviousUserEntry }
39
+ }
40
+
41
+ /**
42
+ * Hook to manage keyboard shortcuts for the user's input history.
43
+ *
44
+ * This hook allows the user to navigate through the history of messages sent in a chat
45
+ * using the up arrow (`ArrowUp`) and down arrow (`ArrowDown`) keys.
46
+ */
47
+ export const useUserEntryHistoryShortcut = () => {
48
+ const { getNextUserEntry, getPreviousUserEntry } = useChatEntryHistory()
49
+ const chat = useCurrentChat()
50
+ const userEntryRef = useRef(chat.get('nextMessage') ?? '')
51
+
52
+ useEffect(() => {
53
+ userEntryRef.current = chat.get('nextMessage') ?? ''
54
+ chat.onChange('nextMessage', (value) => {
55
+ if (value === '') {
56
+ userEntryRef.current = ''
57
+ }
58
+ })
59
+ }, [chat.id])
60
+
61
+ const setNextMessageFromHistory = useCallback(
62
+ (event: React.KeyboardEvent<HTMLTextAreaElement>, getEntryHistory: typeof getNextUserEntry) => {
63
+ const textarea = event.target as HTMLTextAreaElement
64
+ if (textarea.selectionStart !== 0) return
65
+
66
+ const entryHistory = getEntryHistory(userEntryRef.current)
67
+ if (entryHistory === chat.get('nextMessage')) return
68
+
69
+ chat.set('nextMessage', entryHistory)
70
+
71
+ requestAnimationFrame(() => {
72
+ textarea.selectionStart = 0
73
+ textarea.selectionEnd = 0
74
+ event.preventDefault()
75
+ event.stopPropagation()
76
+ })
77
+
78
+ }, [chat])
79
+
80
+ const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLTextAreaElement>) => {
81
+ if (event.key === 'ArrowUp') {
82
+ setNextMessageFromHistory(event, getPreviousUserEntry)
83
+ }
84
+
85
+ if (event.key === 'ArrowDown') {
86
+ setNextMessageFromHistory(event, getNextUserEntry)
87
+ }
88
+ }, [getPreviousUserEntry, getNextUserEntry, setNextMessageFromHistory])
89
+
90
+ const handleKeyUp = useCallback((event: React.KeyboardEvent<HTMLTextAreaElement>) => {
91
+ if (!event.key.startsWith('Arrow')) {
92
+ userEntryRef.current = chat.get('nextMessage') ?? ''
93
+ }
94
+ }, [chat])
95
+
96
+ return { handleKeyDown, handleKeyUp }
97
+ }
@@ -11,6 +11,8 @@ import { ButtonAgent } from './ButtonAgent'
11
11
  import { ButtonGroup } from './ButtonGroup'
12
12
  import { useMessageInputDictionary } from './dictionary'
13
13
  import { InfoBar } from './InfoBar'
14
+
15
+ import { useUserEntryHistoryShortcut } from './chat-entry-history'
14
16
  import { QuickCommandSelector } from './QuickCommandSelector'
15
17
  import { MAX_INPUT_HEIGHT, MessageInputBox, MIN_INPUT_HEIGHT } from './styled'
16
18
 
@@ -30,6 +32,7 @@ export const MessageInput = () => {
30
32
  const isMinimized = useWidgetState('isMinimized')
31
33
  const textAreaRef = useRef<HTMLTextAreaElement>(null)
32
34
  const agentLabel = useCurrentChatState('agent')?.label ?? 'Stackspot AI'
35
+ const { handleKeyDown, handleKeyUp } = useUserEntryHistoryShortcut()
33
36
 
34
37
  const onSend = useCallback(async () => {
35
38
  const message = chat.get('nextMessage')
@@ -47,7 +50,9 @@ export const MessageInput = () => {
47
50
  event.preventDefault()
48
51
  onSend()
49
52
  }
50
- }, [onSend])
53
+
54
+ handleKeyDown(event)
55
+ }, [onSend, handleKeyDown])
51
56
 
52
57
  useEffect(() => {
53
58
  if (!isLoading) textAreaRef.current?.focus()
@@ -71,6 +76,7 @@ export const MessageInput = () => {
71
76
  onFocus={() => setFocused(true)}
72
77
  onBlur={() => setFocused(false)}
73
78
  onKeyDown={onKeyDown}
79
+ onKeyUp={handleKeyUp}
74
80
  onIncreaseSize={() => setExpanded(false)}
75
81
  onResetSize={() => !expansionLocked.current && setExpanded(true)}
76
82
  maxHeight={isMinimized ? MIN_INPUT_HEIGHT : MAX_INPUT_HEIGHT}
@@ -1,5 +0,0 @@
1
- import { StackspotAPIError } from '@stack-spot/portal-network';
2
- export declare class AbortedError extends StackspotAPIError {
3
- constructor();
4
- }
5
- //# sourceMappingURL=AbortedError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbortedError.d.ts","sourceRoot":"","sources":["../src/AbortedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,qBAAa,YAAa,SAAQ,iBAAiB;;CAIlD"}
@@ -1,7 +0,0 @@
1
- import { StackspotAPIError } from '@stack-spot/portal-network';
2
- export class AbortedError extends StackspotAPIError {
3
- constructor() {
4
- super({ status: 0, message: 'Operation canceled by the user.' });
5
- }
6
- }
7
- //# sourceMappingURL=AbortedError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbortedError.js","sourceRoot":"","sources":["../src/AbortedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,OAAO,YAAa,SAAQ,iBAAiB;IACjD;QACE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAA;IAClE,CAAC;CACF"}
@@ -1,23 +0,0 @@
1
- import { WithStyle } from '@stack-spot/portal-theme';
2
- import './layout.css';
3
- import { MinimizedActions } from './types.js';
4
- export interface AIWidgetProps extends WithStyle {
5
- /**
6
- * The name of the user currently logged in.
7
- */
8
- username: string;
9
- /**
10
- * A custom view to show when the chat has no messages to display.
11
- */
12
- children?: React.ReactNode;
13
- /**
14
- * If the chat can be minimized, this set of functions tells what to do when minimization related buttons are clicked.
15
- */
16
- minimizedActions?: MinimizedActions;
17
- }
18
- /**
19
- * Renders a Chat Widget according to the closest model found in the React tree (AIWidgetProvider). If no model is found, a global version
20
- * of the Chat Widget will be instantiated and used.
21
- */
22
- export declare const StackspotAIWidget: ({ username, minimizedActions, children, className, style }: AIWidgetProps) => import("react/jsx-runtime").JSX.Element;
23
- //# sourceMappingURL=StackspotAIWidget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StackspotAIWidget.d.ts","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAIjE,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAc1C,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,+DAAqE,aAAa,4CAmC/G,CAAA"}
@@ -1,35 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { listToClass } from '@stack-spot/portal-theme';
3
- import { useMemo, useRef } from 'react';
4
- import { TooltipProvider } from './components/Tooltip/index.js';
5
- import { useCurrentChatMessages, useWidgetState } from './context/hooks.js';
6
- import './layout.css';
7
- import { RightPanel } from './right-panel/RightPanel.js';
8
- import { RightPanelProvider } from './right-panel/RightPanelProvider.js';
9
- import { Agents } from './views/Agents/index.js';
10
- import { Chat } from './views/Chat/index.js';
11
- import { ChatHistory } from './views/ChatHistory/index.js';
12
- import { ChatTabSelection } from './views/ChatTabSelection.js';
13
- import { Editor } from './views/Editor.js';
14
- import { Home } from './views/Home/index.js';
15
- import { KnowledgeSources } from './views/KnowledgeSources.js';
16
- import { KSDocument } from './views/KSDocument.js';
17
- import { MessageInput } from './views/MessageInput/index.js';
18
- import { MinimizedHeader } from './views/MinimizedHeader.js';
19
- import { Stacks } from './views/Stacks.js';
20
- import { Workspaces } from './views/Workspaces.js';
21
- /**
22
- * Renders a Chat Widget according to the closest model found in the React tree (AIWidgetProvider). If no model is found, a global version
23
- * of the Chat Widget will be instantiated and used.
24
- */
25
- export const StackspotAIWidget = ({ username, minimizedActions = {}, children, className, style }) => {
26
- const rightPanelRef = useRef(null);
27
- const chatWindowRef = useRef(null);
28
- const currentChat = useCurrentChatMessages();
29
- const isMinimized = useWidgetState('isMinimized');
30
- const isCurrentChatEmpty = currentChat.length === 0;
31
- return useMemo(() => (_jsx(TooltipProvider, { children: _jsx(RightPanelProvider, { chatWindow: chatWindowRef, panel: rightPanelRef, children: _jsxs("div", { className: listToClass(['ai-chat-widget', isMinimized && 'minimized', className]), translate: "no", style: style, children: [_jsxs("div", { className: "chat-window", ref: chatWindowRef, children: [isMinimized
32
- ? _jsx(MinimizedHeader, { ...minimizedActions })
33
- : _jsx(ChatTabSelection, {}), _jsxs("div", { className: "chat-container", children: [_jsx("div", { className: "chat-content", children: isCurrentChatEmpty ? (children ?? _jsx(Home, { username: username })) : _jsx(Chat, { username: username }) }), _jsx(MessageInput, {})] })] }), _jsx(Stacks, {}), _jsx(Workspaces, {}), _jsx(KnowledgeSources, {}), _jsx(KSDocument, {}), _jsx(Agents, {}), _jsx(Editor, {}), _jsx(ChatHistory, {}), _jsx("div", { className: "chat-right-panel", ref: rightPanelRef, children: _jsx(RightPanel, {}) })] }) }) })), [isCurrentChatEmpty, username, isMinimized, children]);
34
- };
35
- //# sourceMappingURL=StackspotAIWidget.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StackspotAIWidget.js","sourceRoot":"","sources":["../src/StackspotAIWidget.tsx"],"names":[],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- {
2
- "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.7.2",
4
- "date": "Thu Feb 13 2025 20:56:26 GMT+0000 (Coordinated Universal Time)",
5
- "dependencies": [
6
- {
7
- "name": "@stack-spot/app-metadata",
8
- "version": "1.0.1"
9
- },
10
- {
11
- "name": "@types/lodash",
12
- "version": "4.17.9"
13
- },
14
- {
15
- "name": "@types/react",
16
- "version": "18.3.11"
17
- },
18
- {
19
- "name": "@types/react-dom",
20
- "version": "18.3.0"
21
- },
22
- {
23
- "name": "@types/react-syntax-highlighter",
24
- "version": "15.5.13"
25
- },
26
- {
27
- "name": "@typescript-eslint/eslint-plugin",
28
- "version": "6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)"
29
- },
30
- {
31
- "name": "@typescript-eslint/parser",
32
- "version": "6.21.0(eslint@8.57.1)(typescript@5.6.2)"
33
- },
34
- {
35
- "name": "cpy-cli",
36
- "version": "5.0.0"
37
- },
38
- {
39
- "name": "eslint",
40
- "version": "8.57.1"
41
- },
42
- {
43
- "name": "eslint-plugin-filenames",
44
- "version": "1.3.2(eslint@8.57.1)"
45
- },
46
- {
47
- "name": "eslint-plugin-import",
48
- "version": "2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)"
49
- },
50
- {
51
- "name": "eslint-plugin-lodash",
52
- "version": "7.4.0(eslint@8.57.1)"
53
- },
54
- {
55
- "name": "eslint-plugin-promise",
56
- "version": "6.6.0(eslint@8.57.1)"
57
- },
58
- {
59
- "name": "eslint-plugin-react",
60
- "version": "7.37.1(eslint@8.57.1)"
61
- },
62
- {
63
- "name": "eslint-plugin-react-hooks",
64
- "version": "4.6.2(eslint@8.57.1)"
65
- },
66
- {
67
- "name": "react",
68
- "version": "18.2.0"
69
- },
70
- {
71
- "name": "react-dom",
72
- "version": "18.2.0(react@18.2.0)"
73
- },
74
- {
75
- "name": "rimraf",
76
- "version": "5.0.10"
77
- },
78
- {
79
- "name": "styled-components",
80
- "version": "6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
81
- },
82
- {
83
- "name": "tsc-esm-fix",
84
- "version": "2.20.27"
85
- },
86
- {
87
- "name": "typescript",
88
- "version": "5.6.2"
89
- },
90
- {
91
- "name": "@citric/core",
92
- "version": "6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
93
- },
94
- {
95
- "name": "@citric/icons",
96
- "version": "5.9.0(react@18.2.0)"
97
- },
98
- {
99
- "name": "@citric/ui",
100
- "version": "6.5.5(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.9.0(react@18.2.0))(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
101
- },
102
- {
103
- "name": "@monaco-editor/react",
104
- "version": "4.6.0(monaco-editor@0.52.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
105
- },
106
- {
107
- "name": "@stack-spot/portal-components",
108
- "version": "2.8.1(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.9.0(react@18.2.0))(@citric/ui@6.5.5(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.9.0(react@18.2.0))(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-theme@1.1.0(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.11)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
109
- },
110
- {
111
- "name": "@stack-spot/portal-network",
112
- "version": "0.48.0(@stack-spot/auth@5.3.2)(@stack-spot/opa@2.5.0(@stack-spot/auth@5.3.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tanstack/react-query@5.59.16(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
113
- },
114
- {
115
- "name": "@stack-spot/portal-theme",
116
- "version": "1.1.0(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
117
- },
118
- {
119
- "name": "@stack-spot/portal-translate",
120
- "version": "1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
121
- },
122
- {
123
- "name": "lodash",
124
- "version": "4.17.21"
125
- },
126
- {
127
- "name": "monaco-editor",
128
- "version": "0.52.0"
129
- },
130
- {
131
- "name": "react-infinite-scroll-component",
132
- "version": "6.1.0(react@18.2.0)"
133
- },
134
- {
135
- "name": "react-markdown",
136
- "version": "9.0.1(@types/react@18.3.11)(react@18.2.0)"
137
- },
138
- {
139
- "name": "react-syntax-highlighter",
140
- "version": "15.5.0(react@18.2.0)"
141
- },
142
- {
143
- "name": "remark-gfm",
144
- "version": "4.0.0"
145
- },
146
- {
147
- "name": "ulid",
148
- "version": "2.3.0"
149
- }
150
- ]
151
- }
@@ -1,22 +0,0 @@
1
- import { CustomInputResponse } from '@stack-spot/portal-network/api/ai';
2
- import { ChatEntry } from '../state/ChatEntry.js';
3
- import { ChatState } from '../state/ChatState.js';
4
- import { LabeledWithImage } from '../state/types.js';
5
- export declare class CustomInputs {
6
- private value;
7
- private inputs;
8
- private index;
9
- private resolve?;
10
- private promise;
11
- private agent?;
12
- constructor(inputs: CustomInputResponse[], agent?: LabeledWithImage);
13
- static getCustomInputsFromChat(chat: ChatState): CustomInputs | undefined;
14
- static setCustomInputsForChat(inputs: CustomInputs, chat: ChatState): void;
15
- static deleteCustomInputsFromChat(chat: ChatState): void;
16
- ask(): ChatEntry;
17
- answer(value: string): void;
18
- skip(): void;
19
- hasFinished(): boolean;
20
- getValue(): Promise<Record<string, string>>;
21
- }
22
- //# sourceMappingURL=CustomInputs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomInputs.d.ts","sourceRoot":"","sources":["../../src/chat-interceptors/CustomInputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAIjD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,OAAO,CAAC,CAAyC;IACzD,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,KAAK,CAAC,CAAkB;gBAEpB,MAAM,EAAE,mBAAmB,EAAE,EAAE,KAAK,CAAC,EAAE,gBAAgB;IAQnE,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS;IAIzE,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAI1E,MAAM,CAAC,0BAA0B,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAIxD,GAAG,IAAI,SAAS;IAgBhB,MAAM,CAAC,KAAK,EAAE,MAAM;IAKpB,IAAI;IAKJ,WAAW;IAIX,QAAQ;CAGT"}
@@ -1,71 +0,0 @@
1
- import { translate } from '@stack-spot/portal-translate';
2
- import { ChatEntry } from '../state/ChatEntry.js';
3
- const CUSTOM_INPUTS_KEY = 'customInputs';
4
- export class CustomInputs {
5
- value = {};
6
- inputs;
7
- index = 0;
8
- resolve;
9
- promise;
10
- agent;
11
- constructor(inputs, agent) {
12
- this.inputs = inputs;
13
- this.agent = agent;
14
- this.promise = new Promise(resolve => {
15
- this.resolve = resolve;
16
- });
17
- }
18
- static getCustomInputsFromChat(chat) {
19
- return chat.interceptorMemory.get(CUSTOM_INPUTS_KEY);
20
- }
21
- static setCustomInputsForChat(inputs, chat) {
22
- chat.interceptorMemory.set(CUSTOM_INPUTS_KEY, inputs);
23
- }
24
- static deleteCustomInputsFromChat(chat) {
25
- chat.interceptorMemory.delete(CUSTOM_INPUTS_KEY);
26
- }
27
- ask() {
28
- if (this.index >= this.inputs.length)
29
- throw new Error('No more questions to ask.');
30
- const t = translate(dictionary);
31
- const input = this.inputs[this.index];
32
- return new ChatEntry({
33
- agentType: 'bot',
34
- content: input.question,
35
- type: 'text',
36
- agent: this.agent,
37
- badges: [{ label: input.mandatory ? t.required : t.optional }],
38
- card: true,
39
- actions: input.mandatory ? undefined : [{ type: 'command', appearance: 'primary', title: t.skip, exec: '/skip' }],
40
- updated: new Date().toISOString(),
41
- });
42
- }
43
- answer(value) {
44
- this.value[this.inputs[this.index].slug] = value;
45
- this.skip();
46
- }
47
- skip() {
48
- this.index++;
49
- if (this.hasFinished())
50
- this.resolve?.(this.value);
51
- }
52
- hasFinished() {
53
- return this.index === this.inputs.length;
54
- }
55
- getValue() {
56
- return this.promise;
57
- }
58
- }
59
- const dictionary = {
60
- en: {
61
- required: 'Required information',
62
- optional: 'Optional information',
63
- skip: 'Skip',
64
- },
65
- pt: {
66
- required: 'Informação obrigatória',
67
- optional: 'Informação opcional',
68
- skip: 'Pular',
69
- },
70
- };
71
- //# sourceMappingURL=CustomInputs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomInputs.js","sourceRoot":"","sources":["../../src/chat-interceptors/CustomInputs.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { ChatEntry } from '../state/ChatEntry.js';
2
- import { ChatState } from '../state/ChatState.js';
3
- /**
4
- * This chat interceptor is responsible for interrupting the normal flow of the chat and asking questions about the variables (custom
5
- * inputs) needed to run the quick command previously typed.
6
- *
7
- * The first question is actually asked by the `quickCommandInterceptor`, this registers all answers and asks the next questions (if any).
8
- *
9
- * @param entry the chat entry.
10
- * @param chat the chat state.
11
- * @returns false if, and only if, this entry is an answer to a quick command question (custom input). Undefined otherwise.
12
- */
13
- export declare function quickCommandQuestionsInterceptor(entry: ChatEntry, chat: ChatState): false | undefined;
14
- //# sourceMappingURL=quick-command-questions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quick-command-questions.d.ts","sourceRoot":"","sources":["../../src/chat-interceptors/quick-command-questions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,qBAUjF"}
@@ -1,28 +0,0 @@
1
- import { CustomInputs } from './CustomInputs.js';
2
- /**
3
- * This chat interceptor is responsible for interrupting the normal flow of the chat and asking questions about the variables (custom
4
- * inputs) needed to run the quick command previously typed.
5
- *
6
- * The first question is actually asked by the `quickCommandInterceptor`, this registers all answers and asks the next questions (if any).
7
- *
8
- * @param entry the chat entry.
9
- * @param chat the chat state.
10
- * @returns false if, and only if, this entry is an answer to a quick command question (custom input). Undefined otherwise.
11
- */
12
- export function quickCommandQuestionsInterceptor(entry, chat) {
13
- const { agentType, content } = entry.getValue();
14
- if (agentType !== 'user')
15
- return;
16
- const customInputs = CustomInputs.getCustomInputsFromChat(chat);
17
- if (!customInputs)
18
- return;
19
- if (content === '/skip')
20
- customInputs.skip();
21
- else
22
- customInputs.answer(content);
23
- if (!customInputs.hasFinished())
24
- chat.pushMessage(customInputs.ask());
25
- // prevents next interceptors from running
26
- return false;
27
- }
28
- //# sourceMappingURL=quick-command-questions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quick-command-questions.js","sourceRoot":"","sources":["../../src/chat-interceptors/quick-command-questions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C;;;;;;;;;GASG;AACH,MAAM,UAAU,gCAAgC,CAAC,KAAgB,EAAE,IAAe;IAChF,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC/C,IAAI,SAAS,KAAK,MAAM;QAAE,OAAM;IAChC,MAAM,YAAY,GAAG,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAC/D,IAAI,CAAC,YAAY;QAAE,OAAM;IACzB,IAAI,OAAO,KAAK,OAAO;QAAE,YAAY,CAAC,IAAI,EAAE,CAAA;;QACvC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;IACrE,0CAA0C;IAC1C,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,17 +0,0 @@
1
- import type { editor } from 'monaco-editor';
2
- import { ChatEntry } from '../state/ChatEntry.js';
3
- import { ChatState } from '../state/ChatState.js';
4
- import { WidgetState } from '../state/WidgetState.js';
5
- /**
6
- * This creates a chat interceptor for interpreting and running quick commands. We need a function to create the interceptor because, for
7
- * quick commands, we need access to the full widget state and the editor, which are not provided to a chat interceptor.
8
- *
9
- * The quick command interceptor intercepts all user messages (trimmed) that matches the quick command regex. It fetches the quick command
10
- * from the backend, runs all of its steps and outputs the final response (in the chat or in the editor).
11
- *
12
- * @param widget the full widget state.
13
- * @param getEditor a function that returns the editor instance (monaco).
14
- * @returns the quick commands chat interceptor.
15
- */
16
- export declare function createQuickCommandInterceptor(widget: WidgetState, getEditor: () => typeof editor | undefined): (entry: ChatEntry, chat: ChatState, signal: AbortSignal) => Promise<false | undefined>;
17
- //# sourceMappingURL=quick-commands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quick-commands.d.ts","sourceRoot":"","sources":["../../src/chat-interceptors/quick-commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAI3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAuBlD;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,MAAM,GAAG,SAAS,WAqN7D,SAAS,QAAQ,SAAS,UAAU,WAAW,gCAuC9F"}