@stack-spot/ai-chat-widget 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/StackspotAIWidget.d.ts +3 -2
  3. package/dist/StackspotAIWidget.d.ts.map +1 -1
  4. package/dist/StackspotAIWidget.js +5 -4
  5. package/dist/StackspotAIWidget.js.map +1 -1
  6. package/dist/app-metadata.json +6 -6
  7. package/dist/chat-interceptors/send-message.d.ts.map +1 -1
  8. package/dist/chat-interceptors/send-message.js +7 -2
  9. package/dist/chat-interceptors/send-message.js.map +1 -1
  10. package/dist/components/ComponentNavigator.d.ts +38 -0
  11. package/dist/components/ComponentNavigator.d.ts.map +1 -0
  12. package/dist/components/ComponentNavigator.js +33 -0
  13. package/dist/components/ComponentNavigator.js.map +1 -0
  14. package/dist/components/ListResource.d.ts +29 -0
  15. package/dist/components/ListResource.d.ts.map +1 -0
  16. package/dist/components/ListResource.js +17 -0
  17. package/dist/components/ListResource.js.map +1 -0
  18. package/dist/components/RightPanelForm.d.ts.map +1 -1
  19. package/dist/components/RightPanelForm.js +29 -1
  20. package/dist/components/RightPanelForm.js.map +1 -1
  21. package/dist/components/Selector/index.js +5 -5
  22. package/dist/components/Selector/index.js.map +1 -1
  23. package/dist/components/Selector/styled.d.ts +3 -1
  24. package/dist/components/Selector/styled.d.ts.map +1 -1
  25. package/dist/components/Selector/styled.js +2 -1
  26. package/dist/components/Selector/styled.js.map +1 -1
  27. package/dist/components/WorkspaceTabNavigator.d.ts +17 -0
  28. package/dist/components/WorkspaceTabNavigator.d.ts.map +1 -0
  29. package/dist/components/WorkspaceTabNavigator.js +95 -0
  30. package/dist/components/WorkspaceTabNavigator.js.map +1 -0
  31. package/dist/components/form/DescribedCheckboxGroup.d.ts.map +1 -1
  32. package/dist/components/form/DescribedCheckboxGroup.js +23 -2
  33. package/dist/components/form/DescribedCheckboxGroup.js.map +1 -1
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/state/ChatEntry.d.ts +17 -0
  39. package/dist/state/ChatEntry.d.ts.map +1 -1
  40. package/dist/state/ChatEntry.js.map +1 -1
  41. package/dist/views/Agents/AgentsPanel.d.ts.map +1 -1
  42. package/dist/views/Agents/AgentsPanel.js +19 -11
  43. package/dist/views/Agents/AgentsPanel.js.map +1 -1
  44. package/dist/views/Agents/AgentsTab.d.ts +9 -3
  45. package/dist/views/Agents/AgentsTab.d.ts.map +1 -1
  46. package/dist/views/Agents/AgentsTab.js +25 -7
  47. package/dist/views/Agents/AgentsTab.js.map +1 -1
  48. package/dist/views/Agents/dictionary.d.ts +1 -1
  49. package/dist/views/Agents/dictionary.d.ts.map +1 -1
  50. package/dist/views/Agents/dictionary.js +2 -0
  51. package/dist/views/Agents/dictionary.js.map +1 -1
  52. package/dist/views/Chat/ChatMessage.d.ts +16 -2
  53. package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
  54. package/dist/views/Chat/ChatMessage.js +14 -12
  55. package/dist/views/Chat/ChatMessage.js.map +1 -1
  56. package/dist/views/Chat/ChatMessages.d.ts +3 -2
  57. package/dist/views/Chat/ChatMessages.d.ts.map +1 -1
  58. package/dist/views/Chat/ChatMessages.js +2 -2
  59. package/dist/views/Chat/ChatMessages.js.map +1 -1
  60. package/dist/views/Chat/StepsList.js +2 -2
  61. package/dist/views/Chat/StepsList.js.map +1 -1
  62. package/dist/views/Chat/index.d.ts +3 -2
  63. package/dist/views/Chat/index.d.ts.map +1 -1
  64. package/dist/views/Chat/index.js +2 -2
  65. package/dist/views/Chat/index.js.map +1 -1
  66. package/dist/views/ChatHistory/utils.d.ts.map +1 -1
  67. package/dist/views/ChatHistory/utils.js +12 -3
  68. package/dist/views/ChatHistory/utils.js.map +1 -1
  69. package/dist/views/KnowledgeSources.d.ts +12 -0
  70. package/dist/views/KnowledgeSources.d.ts.map +1 -1
  71. package/dist/views/KnowledgeSources.js +20 -6
  72. package/dist/views/KnowledgeSources.js.map +1 -1
  73. package/dist/views/MessageInput/AgentSelector.d.ts.map +1 -1
  74. package/dist/views/MessageInput/AgentSelector.js +11 -7
  75. package/dist/views/MessageInput/AgentSelector.js.map +1 -1
  76. package/dist/views/MessageInput/ButtonGroup.js +2 -2
  77. package/dist/views/MessageInput/ButtonGroup.js.map +1 -1
  78. package/dist/views/MessageInput/QuickCommandSelector.d.ts.map +1 -1
  79. package/dist/views/MessageInput/QuickCommandSelector.js +12 -4
  80. package/dist/views/MessageInput/QuickCommandSelector.js.map +1 -1
  81. package/dist/views/MessageInput/dictionary.d.ts +1 -1
  82. package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
  83. package/dist/views/MessageInput/dictionary.js +4 -4
  84. package/dist/views/MessageInput/dictionary.js.map +1 -1
  85. package/dist/views/Stacks.d.ts +9 -0
  86. package/dist/views/Stacks.d.ts.map +1 -1
  87. package/dist/views/Stacks.js +37 -14
  88. package/dist/views/Stacks.js.map +1 -1
  89. package/dist/views/Workspaces/WorkspacesTab.d.ts +20 -0
  90. package/dist/views/Workspaces/WorkspacesTab.d.ts.map +1 -0
  91. package/dist/views/Workspaces/WorkspacesTab.js +64 -0
  92. package/dist/views/Workspaces/WorkspacesTab.js.map +1 -0
  93. package/dist/views/{Workspaces.d.ts → Workspaces/index.d.ts} +1 -1
  94. package/dist/views/Workspaces/index.d.ts.map +1 -0
  95. package/dist/views/Workspaces/index.js +67 -0
  96. package/dist/views/Workspaces/index.js.map +1 -0
  97. package/package.json +3 -3
  98. package/src/StackspotAIWidget.tsx +20 -6
  99. package/src/app-metadata.json +6 -6
  100. package/src/chat-interceptors/send-message.ts +7 -2
  101. package/src/components/ComponentNavigator.tsx +103 -0
  102. package/src/components/ListResource.tsx +60 -0
  103. package/src/components/RightPanelForm.tsx +29 -1
  104. package/src/components/Selector/index.tsx +5 -5
  105. package/src/components/Selector/styled.ts +3 -2
  106. package/src/components/WorkspaceTabNavigator.tsx +175 -0
  107. package/src/components/form/DescribedCheckboxGroup.tsx +38 -7
  108. package/src/index.ts +2 -0
  109. package/src/state/ChatEntry.ts +17 -0
  110. package/src/views/Agents/AgentsPanel.tsx +21 -11
  111. package/src/views/Agents/AgentsTab.tsx +42 -9
  112. package/src/views/Agents/dictionary.ts +3 -0
  113. package/src/views/Chat/ChatMessage.tsx +32 -18
  114. package/src/views/Chat/ChatMessages.tsx +11 -4
  115. package/src/views/Chat/StepsList.tsx +2 -2
  116. package/src/views/Chat/index.tsx +4 -3
  117. package/src/views/ChatHistory/utils.ts +14 -3
  118. package/src/views/KnowledgeSources.tsx +37 -14
  119. package/src/views/MessageInput/AgentSelector.tsx +20 -8
  120. package/src/views/MessageInput/ButtonGroup.tsx +3 -3
  121. package/src/views/MessageInput/QuickCommandSelector.tsx +19 -6
  122. package/src/views/MessageInput/dictionary.ts +4 -4
  123. package/src/views/Stacks.tsx +57 -17
  124. package/src/views/Workspaces/WorkspacesTab.tsx +120 -0
  125. package/src/views/Workspaces/index.tsx +76 -0
  126. package/dist/views/Workspaces.d.ts.map +0 -1
  127. package/dist/views/Workspaces.js +0 -103
  128. package/dist/views/Workspaces.js.map +0 -1
  129. package/src/views/Workspaces.tsx +0 -137
@@ -0,0 +1,95 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Box, Flex, IconBox, Image, Text } from '@citric/core';
3
+ import { ArrowRight, Search, Spaces, Times } from '@citric/icons';
4
+ import { Avatar, IconButton } from '@citric/ui';
5
+ import { Placeholder } from '@stack-spot/portal-components/Placeholder';
6
+ import { workspaceAiClient } from '@stack-spot/portal-network';
7
+ import { useTranslate } from '@stack-spot/portal-translate';
8
+ import { memo, useMemo, useState } from 'react';
9
+ import { useRightPanel } from '../right-panel/hooks.js';
10
+ import { ButtonFavorite } from './ButtonFavorite.js';
11
+ import { ComponentNavigator, useComponentNavigation } from './ComponentNavigator.js';
12
+ import { IconInput } from './IconInput.js';
13
+ import { ListResource } from './ListResource.js';
14
+ export const CardSpace = ({ onClick, name, icon, logoUrl }) => _jsxs(Flex, { onClick: onClick, flex: 1, alignItems: "center", justifyContent: "space-between", mr: 2, bg: "light.400", r: "sm", p: 3, sx: { cursor: 'pointer' }, children: [_jsxs(Flex, { alignContent: "center", alignItems: "center", sx: { gap: '8px', m: 1 }, children: [_jsx(Avatar, { size: "xxs", appearance: "square", sx: { bg: 'light.600', r: 'xxs' }, children: logoUrl ? _jsx(Image, { src: logoUrl }) : _jsxs(IconBox, { children: [" ", icon, " "] }) }), _jsx(Text, { appearance: "body2", children: name })] }), _jsx(IconButton, { children: _jsx(ArrowRight, {}) })] });
15
+ const WorkspaceSourcesTab = ({ visibility, onClick }) => {
16
+ const t = useTranslate(dictionary);
17
+ const [filter, setFilter] = useState('');
18
+ const workspaces = workspaceAiClient.workspacesAi.useQuery({ visibility });
19
+ const listFavorites = workspaceAiClient.workspacesAi.useQuery({ visibility: 'favorite' });
20
+ const [addFavorite, pendingAddFav] = workspaceAiClient.addFavoriteWorkspaceAi.useMutation();
21
+ const [removeFavorite, pendingRemoveFav] = workspaceAiClient.removeFavoriteWorkspaceAi.useMutation();
22
+ // eslint-disable-next-line no-async-promise-executor
23
+ const onAddFavorite = async (idOrSlug) => new Promise(async (resolve, reject) => {
24
+ try {
25
+ await addFavorite({ workspaceId: idOrSlug });
26
+ await workspaceAiClient.workspacesAi.invalidate();
27
+ if (!pendingAddFav) {
28
+ resolve(true);
29
+ }
30
+ }
31
+ catch (error) {
32
+ // eslint-disable-next-line no-console
33
+ console.error(error);
34
+ reject(error);
35
+ }
36
+ });
37
+ // eslint-disable-next-line no-async-promise-executor
38
+ const onRemoveFavorite = (idOrSlug) => new Promise(async (resolve, reject) => {
39
+ try {
40
+ await removeFavorite({ workspaceId: idOrSlug });
41
+ await workspaceAiClient.workspacesAi.invalidate();
42
+ if (!pendingRemoveFav) {
43
+ resolve(true);
44
+ }
45
+ }
46
+ catch (error) {
47
+ // eslint-disable-next-line no-console
48
+ console.error(error);
49
+ reject(error);
50
+ }
51
+ });
52
+ const filtered = useMemo(
53
+ // Recreate the list so that the favorites list is taken into account
54
+ () => filter ? workspaces.filter(w => w.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase())) : [...workspaces], [workspaces, filter, listFavorites]);
55
+ return (_jsxs(_Fragment, { children: [_jsx(Box, { w: 12, children: _jsx(IconInput, { icon: _jsx(Search, {}), value: filter, onChange: setFilter, className: "search" }) }), !!filtered.length &&
56
+ _jsx(ListResource, { list: filtered, keygen: w => w.id, style: { gap: '6px', display: 'flex', flexDirection: 'column' }, renderLabel: w => _jsx(CardSpace, { name: w.name, logoUrl: w.logo, icon: _jsx(Spaces, {}), onClick: () => onClick(w) }), renderAfterElement: (w) => _jsx(ButtonFavorite, { favorite: { idOrSlug: w?.id, listFavorites, onAddFavorite, onRemoveFavorite } }), optionClassName: w => (filter && !w.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase()))
57
+ ? 'filtered-out'
58
+ : '', className: "option-list" }), _jsxs(Box, { w: 12, children: [!!workspaces.length && !filtered.length &&
59
+ _jsx(Placeholder, { title: t.noSearchResults, description: t.noSearchResultsDescription, className: "no-data-placeholder" }), !workspaces.length && _jsx(Placeholder, { title: t.noData, description: t.noDataDescription })] })] }));
60
+ };
61
+ const WorkspaceHeader = ({ data }) => {
62
+ const { close: closeRightPanel } = useRightPanel();
63
+ const workspaceId = data.props['workspaceId'];
64
+ if (!workspaceId)
65
+ return;
66
+ const workspace = workspaceAiClient.workspaceAi.useQuery({ id: workspaceId });
67
+ return _jsxs(Flex, { justifyContent: "space-between", alignItems: "center", flex: 1, children: [data.component === 'workspaceResource' ? 'Spots' : workspace.name, data.fullScreen && _jsxs(IconButton, { title: 't.close', "aria-label": 't.close', onClick: closeRightPanel, children: [" ", _jsx(Times, {}), " "] })] });
68
+ };
69
+ export function WorkspaceTabNavigator({ components, getNavigateParam, visibility, className }) {
70
+ const workspaceTabComponents = useMemo(() => ({
71
+ workspace: memo(function WorkspacesTab() {
72
+ const { navigate } = useComponentNavigation();
73
+ return (_jsx(WorkspaceSourcesTab, { visibility: visibility ?? 'all', onClick: (w) => navigate(getNavigateParam(w)) }));
74
+ }),
75
+ ...components,
76
+ }), [components]);
77
+ return _jsx(ComponentNavigator, { initialItem: { component: 'workspace' }, components: workspaceTabComponents, className: className, renderTitle: (data) => _jsx(WorkspaceHeader, { data: data }) });
78
+ }
79
+ const dictionary = {
80
+ en: {
81
+ noSearchResults: "Your search didn't yield results.",
82
+ noSearchResultsDescription: 'Please, try another search term.',
83
+ noData: 'There are no spaces yet.',
84
+ noDataDescription: 'Use the AI portal to create new spaces.',
85
+ apply: 'Apply',
86
+ },
87
+ pt: {
88
+ noSearchResults: 'Sua busca não produziu resultados',
89
+ noSearchResultsDescription: 'Por favor, tente outra busca.',
90
+ noData: 'Ainda não há spaces.',
91
+ noDataDescription: 'Use o Portal AI para criar novos spaces.',
92
+ apply: 'Aplicar',
93
+ },
94
+ };
95
+ //# sourceMappingURL=WorkspaceTabNavigator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceTabNavigator.js","sourceRoot":"","sources":["../../src/components/WorkspaceTabNavigator.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DescribedCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/form/DescribedCheckboxGroup.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,EACxC,MAAM,EACN,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,KAAK,EACL,SAAS,EACT,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,2CAmCvB"}
1
+ {"version":3,"file":"DescribedCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/form/DescribedCheckboxGroup.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,EACxC,MAAM,EACN,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,KAAK,EACL,SAAS,EACT,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,2CAsDvB"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Checkbox, Text } from '@citric/core';
2
+ import { Checkbox, Flex, Text } from '@citric/core';
3
3
  import { listToClass } from '@stack-spot/portal-theme';
4
+ import { useTranslate } from '@stack-spot/portal-translate';
4
5
  import { useMemo } from 'react';
5
6
  import { Accordion } from '../Accordion.js';
6
7
  import { RadioCheckBox } from './styled.js';
@@ -9,6 +10,16 @@ import { RadioCheckBox } from './styled.js';
9
10
  * The description in placed under the label and checkbox as an accordion.
10
11
  */
11
12
  export function DescribedCheckboxGroup({ keygen, onChange, options, renderDescription, renderLabel, renderBeforeElement, renderAfterElement, optionClassName, optionStyle, value, className, style }) {
13
+ const t = useTranslate(dictionary);
14
+ const allSelected = options.length > 0 && options.every(option => value.includes(option));
15
+ const handleSelectAll = (e) => {
16
+ if (e.target.checked) {
17
+ onChange(options);
18
+ }
19
+ else {
20
+ onChange([]);
21
+ }
22
+ };
12
23
  const items = useMemo(() => options.map((option) => {
13
24
  const label = renderLabel(option);
14
25
  const description = renderDescription(option);
@@ -22,6 +33,16 @@ export function DescribedCheckboxGroup({ keygen, onChange, options, renderDescri
22
33
  ? _jsx(Text, { appearance: "microtext1", colorScheme: "light.700", children: description })
23
34
  : description }), renderAfterElement?.(option)] }, keygen(option)) }));
24
35
  }), [options, value]);
25
- return _jsx(RadioCheckBox, { style: style, className: className, children: items });
36
+ return _jsxs(RadioCheckBox, { style: style, className: className, children: [_jsxs(Flex, { as: "li", alignItems: "center", ml: 3, pl: 1, children: [_jsx(Checkbox, { checked: allSelected, onChange: handleSelectAll }), _jsx(Text, { children: allSelected ? t.removeAll : t.selectAll })] }), items] });
26
37
  }
38
+ const dictionary = {
39
+ en: {
40
+ selectAll: 'Select all',
41
+ removeAll: 'Remove all',
42
+ },
43
+ pt: {
44
+ selectAll: 'Selecionar todos',
45
+ removeAll: 'Remover todos',
46
+ },
47
+ };
27
48
  //# sourceMappingURL=DescribedCheckboxGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DescribedCheckboxGroup.js","sourceRoot":"","sources":["../../../src/components/form/DescribedCheckboxGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAI,EACxC,MAAM,EACN,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,KAAK,EACL,SAAS,EACT,KAAK,EAAiB;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;QACjC,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE7C,MAAM,MAAM,GAAG,CACb,4BACE,KAAC,QAAQ,IACP,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;4BAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;;4BACxE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAA;oBACtD,CAAC,GACD,EACD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,KAAK,IACnD,CACT,CAAA;QAED,OAAO,CACL,4BACE,cAAyB,SAAS,EAAE,WAAW,CAAC,CAAC,kBAAkB,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,aAC3H,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAC9B,KAAC,SAAS,IAAC,MAAM,EAAE,MAAM,YACtB,OAAO,WAAW,KAAK,QAAQ;4BAC9B,CAAC,CAAC,KAAC,IAAI,IAAC,UAAU,EAAC,YAAY,EAAC,WAAW,EAAC,WAAW,YAAE,WAAW,GAAQ;4BAC5E,CAAC,CAAC,WAAkB,GAEZ,EACX,kBAAkB,EAAE,CAAC,MAAM,CAAC,KARtB,MAAM,CAAC,MAAM,CAAC,CASlB,GACJ,CACJ,CAAA;IACH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAErB,OAAO,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,YAAG,KAAK,GAAiB,CAAA;AACnF,CAAC"}
1
+ {"version":3,"file":"DescribedCheckboxGroup.js","sourceRoot":"","sources":["../../../src/components/form/DescribedCheckboxGroup.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,4 +13,5 @@ export { ChatTabsController } from './state/ChatTabsController.js';
13
13
  export { ObservableState } from './state/ObservableState.js';
14
14
  export type { Labeled, LabeledAgent, LabeledWithImage } from './state/types.js';
15
15
  export { WidgetState } from './state/WidgetState.js';
16
+ export { defaultLanguage, languages } from './utils/programming-languages.js';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA"}
package/dist/index.js CHANGED
@@ -10,4 +10,5 @@ export { ChatState } from './state/ChatState.js';
10
10
  export { ChatTabsController } from './state/ChatTabsController.js';
11
11
  export { ObservableState } from './state/ObservableState.js';
12
12
  export { WidgetState } from './state/WidgetState.js';
13
+ export { defaultLanguage, languages } from './utils/programming-languages.js';
13
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2IAA2I;AAE3I,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2IAA2I;AAE3I,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA"}
@@ -77,8 +77,25 @@ export interface TextChatEntry {
77
77
  * The content of the message.
78
78
  */
79
79
  content: string;
80
+ /**
81
+ * The actual data to send as a message. This is the "content" if not provided.
82
+ *
83
+ * Useful for displaying a text in the chat, via "content", but sending something different to the backend.
84
+ *
85
+ * Serialization: if none of your interceptors return false, this will be converted to a JSON in the last interceptor (sendMessage).
86
+ *
87
+ * Attention: this is ignored by quick commands, which will always use "content".
88
+ */
89
+ data?: any;
80
90
  /**
81
91
  * A content that is not shown to the user, it is used only to share data.
92
+ *
93
+ * This is used solely by the onboarding feature (checkboxes and radio button), implemented in the AI Portal. Maybe it shouldn't be
94
+ * implemented here. This needs a review (fixme).
95
+ *
96
+ * This has been implemented because the message rendered is different than the message we wanted to send to the backend.
97
+ *
98
+ * @deprecated prefer "data" instead.
82
99
  */
83
100
  hiddenContent?: string[];
84
101
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ChatEntry.d.ts","sourceRoot":"","sources":["../../src/state/ChatEntry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatEntry.d.ts","sourceRoot":"","sources":["../../src/state/ChatEntry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatEntry.js","sourceRoot":"","sources":["../../src/state/ChatEntry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAuJ7B,0IAA0I;AAC1I,6CAA6C;AAC7C,IAAI,MAAM,GAAG,CAAC,CAAA;AAEd;;GAEG;AACH,MAAM,OAAO,SAAS;IACX,EAAE,CAAQ;IACX,KAAK,CAAe;IACpB,SAAS,GAAwB,EAAE,CAAA;IAE3C;;OAEG;IACH,YAAY,KAAoB;QAC9B,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,OAAe,EAAE,IAAI,GAAG,KAAK,EAAE,SAAkB,EAAE,aAAwB;QAChG,OAAO,IAAI,SAAS,CAAC;YACnB,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAC1B,OAAO;YACP,IAAI,EAAE,SAAS;YACf,aAAa;YACb,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAClC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,sBAAsB;QAC3B,OAAO,IAAI,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,QAAQ,CAAC,KAAoB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAA2B;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ChatEntry.js","sourceRoot":"","sources":["../../src/state/ChatEntry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAwK7B,0IAA0I;AAC1I,6CAA6C;AAC7C,IAAI,MAAM,GAAG,CAAC,CAAA;AAEd;;GAEG;AACH,MAAM,OAAO,SAAS;IACX,EAAE,CAAQ;IACX,KAAK,CAAe;IACpB,SAAS,GAAwB,EAAE,CAAA;IAE3C;;OAEG;IACH,YAAY,KAAoB;QAC9B,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,OAAe,EAAE,IAAI,GAAG,KAAK,EAAE,SAAkB,EAAE,aAAwB;QAChG,OAAO,IAAI,SAAS,CAAC;YACnB,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAC1B,OAAO;YACP,IAAI,EAAE,SAAS;YACf,aAAa;YACb,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAClC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,sBAAsB;QAC3B,OAAO,IAAI,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,QAAQ,CAAC,KAAoB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAA2B;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAA;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentsPanel.d.ts","sourceRoot":"","sources":["../../../src/views/Agents/AgentsPanel.tsx"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,WAAW,+CAkBvB,CAAA"}
1
+ {"version":3,"file":"AgentsPanel.d.ts","sourceRoot":"","sources":["../../../src/views/Agents/AgentsPanel.tsx"],"names":[],"mappings":"AAQA;;GAEG;AACH,eAAO,MAAM,WAAW,+CA2BvB,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useMemo } from 'react';
2
+ import { useEffect, useMemo, useRef } from 'react';
3
3
  import { RightPanelTabs } from '../../components/RightPanelTabs.js';
4
4
  import { useCurrentChat } from '../../context/hooks.js';
5
+ import { isAgentDefault } from '../../utils/agent.js';
5
6
  import { checkIsTrial } from '../../utils/check-is-trial.js';
6
- import { AgentsTab } from './AgentsTab.js';
7
+ import { AgentsTab, AgentsTabWorkspace } from './AgentsTab.js';
7
8
  import { useAgentsDictionary } from './dictionary.js';
8
9
  /**
9
10
  * Renders the Agent selection form in the Right Panel if this is the panel that is currently opened.
@@ -12,17 +13,24 @@ export const AgentsPanel = () => {
12
13
  const t = useAgentsDictionary();
13
14
  const chat = useCurrentChat();
14
15
  const isTrial = checkIsTrial();
16
+ const agent = useRef(chat.get('agent'));
17
+ useEffect(() => {
18
+ if (!isAgentDefault(chat.get('agent')?.slug)) {
19
+ agent.current = chat.get('agent');
20
+ }
21
+ }, [chat]);
15
22
  const tabs = useMemo(() => isTrial ? [
16
- { title: t.favorites, content: _jsx(AgentsTab, { visibility: "FAVORITE" }, "favorite") },
17
- { title: t.builtin, content: _jsx(AgentsTab, { visibility: "BUILT-IN" }, "builtin") },
18
- { title: t.personal, content: _jsx(AgentsTab, { visibility: "PERSONAL" }, "personal") },
23
+ { title: t.favorites, content: _jsx(AgentsTab, { visibility: "FAVORITE", agent: agent }, "favorite") },
24
+ { title: t.builtin, content: _jsx(AgentsTab, { visibility: "BUILT-IN", agent: agent }, "builtin") },
25
+ { title: t.personal, content: _jsx(AgentsTab, { visibility: "PERSONAL", agent: agent }, "personal") },
19
26
  ] : [
20
- { title: t.favorites, content: _jsx(AgentsTab, { visibility: "FAVORITE" }, "favorite") },
21
- { title: t.builtin, content: _jsx(AgentsTab, { visibility: "BUILT-IN" }, "builtin") },
22
- { title: t.personal, content: _jsx(AgentsTab, { visibility: "PERSONAL" }, "personal") },
23
- { title: t.shared, content: _jsx(AgentsTab, { visibility: "SHARED" }, "shared") },
24
- { title: t.account, content: _jsx(AgentsTab, { visibility: "ACCOUNT" }, "account") },
25
- ], [t, isTrial]);
27
+ { title: t.favorites, content: _jsx(AgentsTab, { visibility: "FAVORITE", agent: agent }, "favorite") },
28
+ { title: t.builtin, content: _jsx(AgentsTab, { visibility: "BUILT-IN", agent: agent }, "builtin") },
29
+ { title: t.personal, content: _jsx(AgentsTab, { visibility: "PERSONAL", agent: agent }, "personal") },
30
+ { title: t.shared, content: _jsx(AgentsTab, { visibility: "SHARED", agent: agent }, "shared") },
31
+ { title: t.spots, content: _jsx(AgentsTabWorkspace, { visibility: "WORKSPACE", agent: agent }, "workspace") },
32
+ { title: t.account, content: _jsx(AgentsTab, { visibility: "ACCOUNT", agent: agent }, "account") },
33
+ ], [t, isTrial, agent]);
26
34
  return _jsx(RightPanelTabs, { tabs: tabs }, chat.id);
27
35
  };
28
36
  //# sourceMappingURL=AgentsPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentsPanel.js","sourceRoot":"","sources":["../../../src/views/Agents/AgentsPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,CAAC,GAAG,mBAAmB,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;IAE9B,MAAM,IAAI,GAAE,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAClC,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,KAAC,SAAS,IAAgB,UAAU,EAAC,UAAU,IAAhC,UAAU,CAAyB,EAAE;QACnF,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAC,SAAS,IAAe,UAAU,EAAC,UAAU,IAA/B,SAAS,CAAyB,EAAE;QAChF,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAC,SAAS,IAAgB,UAAU,EAAC,UAAU,IAAhC,UAAU,CAAyB,EAAE;KACnF,CAAA,CAAC,CAAC;QACD,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,KAAC,SAAS,IAAgB,UAAU,EAAC,UAAU,IAAhC,UAAU,CAAyB,EAAE;QACnF,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAC,SAAS,IAAe,UAAU,EAAC,UAAU,IAA/B,SAAS,CAAyB,EAAE;QAChF,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAC,SAAS,IAAgB,UAAU,EAAC,UAAU,IAAhC,UAAU,CAAyB,EAAE;QAClF,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAC,SAAS,IAAc,UAAU,EAAC,QAAQ,IAA5B,QAAQ,CAAuB,EAAE;QAC5E,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAC,SAAS,IAAe,UAAU,EAAC,SAAS,IAA9B,SAAS,CAAwB,EAAE;KAChF,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAEhB,OAAO,KAAC,cAAc,IAAe,IAAI,EAAE,IAAI,IAAnB,IAAI,CAAC,EAAE,CAAgB,CAAA;AACrD,CAAC,CAAA"}
1
+ {"version":3,"file":"AgentsPanel.js","sourceRoot":"","sources":["../../../src/views/Agents/AgentsPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { VisibilityLevel } from '@stack-spot/portal-network/api/agent';
2
- export declare const AgentsTab: ({ visibility }: {
3
- visibility: VisibilityLevel | "BUILT-IN";
4
- }) => import("react/jsx-runtime").JSX.Element;
2
+ import { ChatProperties } from '../../state/ChatState.js';
3
+ export interface AgentTabProps {
4
+ visibility: VisibilityLevel | 'BUILT-IN';
5
+ workspaceId?: string;
6
+ agent: React.MutableRefObject<ChatProperties['agent']>;
7
+ showSubmitButton?: boolean;
8
+ }
9
+ export declare const AgentsTab: ({ visibility, workspaceId, agent, showSubmitButton }: AgentTabProps) => import("react/jsx-runtime").JSX.Element;
10
+ export declare function AgentsTabWorkspace({ agent, visibility, showSubmitButton }: AgentTabProps): import("react/jsx-runtime").JSX.Element;
5
11
  //# sourceMappingURL=AgentsTab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentsTab.d.ts","sourceRoot":"","sources":["../../../src/views/Agents/AgentsTab.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAiB,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAarF,eAAO,MAAM,SAAS,mBAAoB;IAAE,UAAU,EAAE,eAAe,GAAG,UAAU,CAAA;CAAE,4CA4ErF,CAAA"}
1
+ {"version":3,"file":"AgentsTab.d.ts","sourceRoot":"","sources":["../../../src/views/Agents/AgentsTab.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAiB,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAUrF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAOtD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,eAAe,GAAG,UAAU,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,SAAS,yDAAiE,aAAa,4CAuFnG,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,aAAa,2CASxF"}
@@ -3,11 +3,12 @@ import { Button, IconBox, Text } from '@citric/core';
3
3
  import { Agent, Search } from '@citric/icons';
4
4
  import { Placeholder } from '@stack-spot/portal-components/Placeholder';
5
5
  import { MiniLogo } from '@stack-spot/portal-components/svg';
6
- import { agentClient } from '@stack-spot/portal-network';
7
- import { useMemo, useState } from 'react';
6
+ import { agentClient, workspaceAiClient } from '@stack-spot/portal-network';
7
+ import { useCallback, useMemo, useState } from 'react';
8
8
  import { ButtonFavorite } from '../../components/ButtonFavorite.js';
9
9
  import { DescribedRadioGroup } from '../../components/form/DescribedRadioGroup.js';
10
10
  import { IconInput } from '../../components/IconInput.js';
11
+ import { WorkspaceTabNavigator } from '../../components/WorkspaceTabNavigator.js';
11
12
  import { useCurrentChat } from '../../context/hooks.js';
12
13
  import { useRightPanel } from '../../right-panel/hooks.js';
13
14
  import { isAgentDefault } from '../../utils/agent.js';
@@ -15,7 +16,7 @@ import { AgentDescription } from './AgentDescription.js';
15
16
  import { useAgentsDictionary } from './dictionary.js';
16
17
  import { AgentLabel } from './styled.js';
17
18
  import { useAgentFavorites } from './useAgentFavorites.js';
18
- export const AgentsTab = ({ visibility }) => {
19
+ export const AgentsTab = ({ visibility, workspaceId, agent, showSubmitButton = true }) => {
19
20
  const t = useAgentsDictionary();
20
21
  const { close } = useRightPanel();
21
22
  const chat = useCurrentChat();
@@ -24,8 +25,12 @@ export const AgentsTab = ({ visibility }) => {
24
25
  const listFavorites = useFavorites();
25
26
  const agentsBuiltIn = agentClient.publicAgents.useQuery({});
26
27
  const agentDefault = agentsBuiltIn.find((agent) => isAgentDefault(agent.slug));
27
- const agents = visibility === 'BUILT-IN' ? agentsBuiltIn : agentClient.agents.useQuery({ visibility });
28
- const [value, setValue] = useState(chat.get('agent') ? agents.find(a => a.id === chat.get('agent')?.id) : agentDefault);
28
+ const agents = workspaceId
29
+ ? workspaceAiClient.getAgentFromWorkspaceAi.useQuery({ workspaceId })
30
+ : visibility === 'BUILT-IN' ? agentsBuiltIn : agentClient.agents.useQuery({ visibility });
31
+ const [value, setValue] = useState(agent.current
32
+ ? agents.find(a => a.id === agent.current?.id)
33
+ : chat.get('agent') ? agents.find(a => a.id === chat.get('agent')?.id) : agentDefault);
29
34
  const filtered = useMemo(
30
35
  // Recreate the list so that the favorites list is taken into account
31
36
  () => filter ? agents.filter(a => a === value || a.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase())) : [...agents], [agents, filter, value, listFavorites]);
@@ -43,11 +48,24 @@ export const AgentsTab = ({ visibility }) => {
43
48
  }
44
49
  close();
45
50
  }
51
+ const onChange = useCallback((newValue) => {
52
+ const isBuiltIn = visibility === 'BUILT-IN' || agentsBuiltIn.some((agent) => agent.id === newValue.id);
53
+ setValue(newValue);
54
+ agent.current = { ...newValue, builtIn: isBuiltIn, label: newValue.name };
55
+ }, []);
46
56
  return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "content", children: [_jsx(IconInput, { icon: _jsx(Search, {}), value: filter, onChange: setFilter, className: "search" }), !!filtered.length && _jsx(DescribedRadioGroup, { options: filtered, renderAfterElement: ({ id }) => (_jsx(ButtonFavorite, { favorite: {
47
57
  idOrSlug: id, listFavorites, onAddFavorite, onRemoveFavorite
48
- } })), keygen: a => a.id, value: value, onChange: setValue, renderLabel: ({ name, avatar, id }) => (_jsxs(AgentLabel, { children: [id ? (avatar ? _jsx("img", { src: avatar }) : _jsx(IconBox, { size: "xs", children: _jsx(Agent, {}) })) : _jsx(MiniLogo, {}), _jsx(Text, { children: name })] })), renderDescription: a => _jsx(AgentDescription, { agentId: a.id, visibility: visibility, description: a.description, llm: a.llm_config?.model_slug, numberOfKnowledgeSources: a.knowledge_sources_config?.knowledge_sources?.length ?? 0 }), optionClassName: a => (a === value && filter && !a.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase()))
58
+ } })), keygen: a => a.id, value: value, onChange: onChange, renderLabel: ({ name, avatar, id }) => (_jsxs(AgentLabel, { children: [id ? (avatar ? _jsx("img", { src: avatar }) : _jsx(IconBox, { size: "xs", children: _jsx(Agent, {}) })) : _jsx(MiniLogo, {}), _jsx(Text, { children: name })] })), renderDescription: a => _jsx(AgentDescription, { agentId: a.id, visibility: visibility, description: a.description, llm: a.llm_config?.model_slug, numberOfKnowledgeSources: a.knowledge_sources_config?.knowledge_sources?.length ?? 0 }), optionClassName: a => (a === value && filter && !a.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase()))
49
59
  ? 'filtered-out'
50
60
  : '', className: "option-list" }), !!agents.length && !filtered.length &&
51
- _jsx(Placeholder, { title: t.noSearchResults, description: t.noSearchResultsDescription, className: "no-data-placeholder" }), !agents.length && _jsx(Placeholder, { title: t.noData, description: t.noDataDescription })] }), !!filtered.length && _jsx(Button, { onClick: submit, disabled: !value, children: t.apply })] }));
61
+ _jsx(Placeholder, { title: t.noSearchResults, description: t.noSearchResultsDescription, className: "no-data-placeholder" }), !agents.length && _jsx(Placeholder, { title: t.noData, description: t.noDataDescription })] }), !!filtered.length && showSubmitButton && _jsx(Button, { onClick: submit, disabled: !value, children: t.apply })] }));
52
62
  };
63
+ export function AgentsTabWorkspace({ agent, visibility, showSubmitButton }) {
64
+ const workspaceTabComponents = useMemo(() => ({ agent: AgentsTab }), [agent]);
65
+ const buildNavigateParams = (workspace) => ({
66
+ component: 'agent',
67
+ props: { visibility, workspaceId: workspace.id, agent, showSubmitButton },
68
+ });
69
+ return _jsx(WorkspaceTabNavigator, { components: workspaceTabComponents, getNavigateParam: buildNavigateParams });
70
+ }
53
71
  //# sourceMappingURL=AgentsTab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentsTab.js","sourceRoot":"","sources":["../../../src/views/Agents/AgentsTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentsTab.js","sourceRoot":"","sources":["../../../src/views/Agents/AgentsTab.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const useAgentsDictionary: () => Record<"title" | "description" | "tools" | "subtitle" | "personal" | "builtin" | "shared" | "account" | "apply" | "noSearchResults" | "noSearchResultsDescription" | "noData" | "noDataDescription" | "defaultAgentDescription" | "favorites", string>;
1
+ export declare const useAgentsDictionary: () => Record<"title" | "description" | "tools" | "noSearchResults" | "noSearchResultsDescription" | "noData" | "noDataDescription" | "apply" | "subtitle" | "personal" | "builtin" | "shared" | "account" | "defaultAgentDescription" | "favorites" | "spots", string>;
2
2
  //# sourceMappingURL=dictionary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../../src/views/Agents/dictionary.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,mBAAmB,8PAAiC,CAAA"}
1
+ {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../../src/views/Agents/dictionary.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,mBAAmB,wQAAiC,CAAA"}
@@ -16,6 +16,7 @@ const dictionary = {
16
16
  description: 'Description',
17
17
  favorites: 'Favorites',
18
18
  tools: 'Tools',
19
+ spots: 'Spots',
19
20
  },
20
21
  pt: {
21
22
  title: 'Agentes',
@@ -33,6 +34,7 @@ const dictionary = {
33
34
  description: 'Descrição',
34
35
  favorites: 'Favoritos',
35
36
  tools: 'Ferramentas',
37
+ spots: 'Spots',
36
38
  },
37
39
  };
38
40
  export const useAgentsDictionary = () => useTranslate(dictionary);
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/views/Agents/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEvE,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,sEAAsE;QAChF,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,eAAe,EAAE,mCAAmC;QACpD,0BAA0B,EAAE,kCAAkC;QAC9D,MAAM,EAAE,2CAA2C;QACnD,iBAAiB,EAAE,uFAAuF;QAC1G,uBAAuB,EAAE,+fAA+f;QACxhB,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,WAAW;QACtB,KAAK,EAAE,OAAO;KACf;IACD,EAAE,EAAE;QACF,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,uEAAuE;QACjF,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,oCAAoC;QACrD,0BAA0B,EAAE,+BAA+B;QAC3D,MAAM,EAAE,uCAAuC;QAC/C,iBAAiB,EAAE,8FAA8F;QACjH,uBAAuB,EAAE,skBAAskB;QAC/lB,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,WAAW;QACtB,KAAK,EAAE,aAAa;KACrB;CACmB,CAAA;AAEtB,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/views/Agents/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEvE,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,sEAAsE;QAChF,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,eAAe,EAAE,mCAAmC;QACpD,0BAA0B,EAAE,kCAAkC;QAC9D,MAAM,EAAE,2CAA2C;QACnD,iBAAiB,EAAE,uFAAuF;QAC1G,uBAAuB,EAAE,+fAA+f;QACxhB,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,WAAW;QACtB,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;KACf;IACD,EAAE,EAAE;QACF,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,uEAAuE;QACjF,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,oCAAoC;QACrD,0BAA0B,EAAE,+BAA+B;QAC3D,MAAM,EAAE,uCAAuC;QAC/C,iBAAiB,EAAE,8FAA8F;QACjH,uBAAuB,EAAE,skBAAskB;QAC/lB,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,WAAW;QACtB,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,OAAO;KAEf;CACmB,CAAA;AAEtB,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA"}
@@ -1,6 +1,20 @@
1
1
  import 'react-international-phone/style.css';
2
2
  import { ChatEntry } from '../../state/ChatEntry.js';
3
- interface Props {
3
+ export interface CustomMessage {
4
+ /**
5
+ * React component to render before each message in the chat. It receives the message as a prop.
6
+ */
7
+ beforeMessage?: React.FC<{
8
+ message: ChatEntry;
9
+ }>;
10
+ /**
11
+ * React component to render after each message in the chat. It receives the message as a prop.
12
+ */
13
+ afterMessage?: React.FC<{
14
+ message: ChatEntry;
15
+ }>;
16
+ }
17
+ interface Props extends CustomMessage {
4
18
  /**
5
19
  * The ChatEntry to render.
6
20
  */
@@ -18,6 +32,6 @@ interface Props {
18
32
  /**
19
33
  * Renders a message (ChatEntry) in the chat.
20
34
  */
21
- export declare const ChatMessage: ({ message, username, isLast }: Props) => false | "" | import("react/jsx-runtime").JSX.Element;
35
+ export declare const ChatMessage: ({ message, username, isLast, beforeMessage, afterMessage }: Props) => false | "" | import("react/jsx-runtime").JSX.Element;
22
36
  export {};
23
37
  //# sourceMappingURL=ChatMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../../src/views/Chat/ChatMessage.tsx"],"names":[],"mappings":"AAUA,OAAO,qCAAqC,CAAA;AAI5C,OAAO,EAAE,SAAS,EAAqC,MAAM,uBAAuB,CAAA;AAQpF,UAAU,KAAK;IACb;;OAEG;IACH,OAAO,EAAE,SAAS,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAwHD;;GAEG;AACH,eAAO,MAAM,WAAW,kCAAmC,KAAK,yDA8K/D,CAAA"}
1
+ {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../../src/views/Chat/ChatMessage.tsx"],"names":[],"mappings":"AAQA,OAAO,qCAAqC,CAAA;AAI5C,OAAO,EAAE,SAAS,EAAqC,MAAM,uBAAuB,CAAA;AAQpF,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IACjD;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;CACjD;AAED,UAAU,KAAM,SAAQ,aAAa;IACnC;;OAEG;IACH,OAAO,EAAE,SAAS,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AA2HD;;GAEG;AACH,eAAO,MAAM,WAAW,+DAAgE,KAAK,yDAgL5F,CAAA"}
@@ -1,13 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /* eslint-disable semi */
3
2
  import { Box, Button, Checkbox, Flex, IconBox, Input, Label, Radio, Text } from '@citric/core';
4
3
  import { Cog, Copy, Dislike, DislikeFill, Like, LikeFill, TimesCircle } from '@citric/icons';
5
4
  import { Avatar, Badge, IconButton } from '@citric/ui';
6
5
  import { agentClient } from '@stack-spot/portal-network';
7
6
  import { listToClass } from '@stack-spot/portal-theme';
8
7
  import { useTranslate } from '@stack-spot/portal-translate';
9
- import { debounce } from 'lodash';
10
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
8
+ import { createElement, useCallback, useMemo, useRef, useState } from 'react';
11
9
  import { PhoneInput } from 'react-international-phone';
12
10
  import 'react-international-phone/style.css';
13
11
  import { Markdown } from '../../components/Markdown.js';
@@ -22,12 +20,6 @@ import { onCopyAll, onCopyCode, onLikeOrDislike } from './events.js';
22
20
  import { StepsList } from './StepsList.js';
23
21
  const RenderInputsEntry = ({ isLast, entry, value, setValue, labels, setLabels }) => {
24
22
  const chat = useCurrentChat();
25
- const handleChange = useCallback(debounce((data) => {
26
- setValue((prevValue) => [...prevValue, data.target.value]);
27
- }, 500), []);
28
- useEffect(() => () => {
29
- handleChange.cancel();
30
- }, [handleChange]);
31
23
  const renderInputs = () => {
32
24
  if (entry.type === 'input-text') {
33
25
  return _jsx(Input, { name: entry.name, value: value[0] ?? '', sx: { maxWidth: '500px' }, autoFocus: true, ...entry.validations, onChange: (data) => setValue([data.target.value]), required: entry.required });
@@ -60,7 +52,17 @@ const RenderInputsEntry = ({ isLast, entry, value, setValue, labels, setLabels }
60
52
  setValue([...newValue]);
61
53
  }
62
54
  } }, option.label), _jsx(Text, { ml: 3, children: option.label }), option.hasInput && option.value && labels.findIndex((label) => label === option.value) !== -1 &&
63
- _jsx(Box, { w: 4, ml: 2, children: _jsx(Input, { name: entry.name, ...entry.validations, onChange: (data) => handleChange(data), required: true, sx: { height: '30px' } }) })] }, option.label))) });
55
+ _jsx(Box, { w: 4, ml: 2, children: _jsx(Input, { name: entry.name, ...entry.validations, onChange: (data) => {
56
+ const customIndex = value.findIndex(v => !entry.options?.map(o => o.label).includes(v));
57
+ if (customIndex === -1) {
58
+ setValue([...value, data.target.value]);
59
+ }
60
+ else {
61
+ const newValue = [...value];
62
+ newValue[customIndex] = data.target.value;
63
+ setValue(newValue);
64
+ }
65
+ }, required: true, sx: { height: '30px' } }) })] }, option.label))) });
64
66
  }
65
67
  if (entry.type === 'input-phone') {
66
68
  return (_jsx(PhoneInput, { defaultCountry: "br", value: value[0], onChange: (phone) => setValue([phone]), className: "input-phone", placeholder: "11961234567" }));
@@ -72,7 +74,7 @@ const RenderInputsEntry = ({ isLast, entry, value, setValue, labels, setLabels }
72
74
  /**
73
75
  * Renders a message (ChatEntry) in the chat.
74
76
  */
75
- export const ChatMessage = ({ message, username, isLast }) => {
77
+ export const ChatMessage = ({ message, username, isLast, beforeMessage, afterMessage }) => {
76
78
  const t = useTranslate(dictionary);
77
79
  const [liked, setLiked] = useState();
78
80
  const [value, setValue] = useState(message.getValue()?.initialValue ?? []);
@@ -145,7 +147,7 @@ export const ChatMessage = ({ message, username, isLast }) => {
145
147
  widget.set('currentMessageInPanel', { chatId: chat.id, messageId: message.id });
146
148
  widget.set('panel', 'tools');
147
149
  }
148
- return (entry.content || entry.error || !!entry.steps?.length) && (_jsxs("li", { className: entry.agentType, ref: ref, children: [_jsxs("div", { className: "chat-message", ref: chatRef, onKeyDown: handleKeyDown, tabIndex: 0, children: [_jsx("div", { className: `user-info ${entry.agentType}`, children: userInfo }), (entry.content || entry.steps) && _jsxs("div", { className: listToClass(['message-content', entry.card && 'card', entry.type]), children: [!!entry.badges?.length && _jsx("div", { className: "badges", children: entry.badges.map((b, index) => _jsx(Badge, { palette: b.color ?? 'cyan', appearance: "square", children: b.label }, index)) }), renderContent(), !!entry.steps?.length && _jsx(StepsList, { steps: entry.steps, chatId: chat.id, messageId: message.id })] })] }), entry.error && (_jsxs("div", { className: "error", children: [_jsx(IconBox, { size: "xs", children: _jsx(TimesCircle, {}) }), _jsx(Text, { appearance: "microtext1", children: entry.error })] })), !!entry.tools?.length && _jsx(StackedBadge, { "aria-label": t.openToolsPanel, title: t.openToolsPanel, tabIndex: 0, role: "button", className: "tools-badge", label: t.tools, images: entry.tools.slice(0, 3).map((id) => {
150
+ return (entry.content || entry.error || !!entry.steps?.length) && (_jsxs("li", { className: entry.agentType, ref: ref, children: [_jsxs("div", { className: "chat-message", ref: chatRef, onKeyDown: handleKeyDown, tabIndex: 0, children: [_jsx("div", { className: `user-info ${entry.agentType}`, children: userInfo }), beforeMessage && createElement(beforeMessage, { message }), (entry.content || entry.steps) && _jsxs("div", { className: listToClass(['message-content', entry.card && 'card', entry.type]), children: [!!entry.badges?.length && _jsx("div", { className: "badges", children: entry.badges.map((b, index) => _jsx(Badge, { palette: b.color ?? 'cyan', appearance: "square", children: b.label }, index)) }), renderContent(), !!entry.steps?.length && _jsx(StepsList, { steps: entry.steps, chatId: chat.id, messageId: message.id })] })] }), entry.error && (_jsxs("div", { className: "error", children: [_jsx(IconBox, { size: "xs", children: _jsx(TimesCircle, {}) }), _jsx(Text, { appearance: "microtext1", children: entry.error })] })), afterMessage && createElement(afterMessage, { message }), !!entry.tools?.length && _jsx(StackedBadge, { "aria-label": t.openToolsPanel, title: t.openToolsPanel, tabIndex: 0, role: "button", className: "tools-badge", label: t.tools, images: entry.tools.slice(0, 3).map((id) => {
149
151
  const tool = toolById(id, agent?.toolkits);
150
152
  return { key: id, name: tool?.name || id, icon: _jsx(Cog, {}), url: tool?.image };
151
153
  }), onClick: openToolsPanel }), !!entry.knowledgeSources?.length && _jsxs("div", { className: "ks-box", children: [_jsx(Text, { appearance: "microtext1", colorScheme: "light.700", children: "Knowledge Sources:" }), _jsx("ul", { children: entry.knowledgeSources.map((ks, index) => (_jsx("li", { children: _jsx(Button, { size: "sm", colorScheme: "light", onClick: () => detailKS(ks), children: ks.name }) }, index))) })] }), shouldShowFooter && _jsxs("div", { className: "message-footer", children: [entry.agentType === 'bot' && !entry.error && _jsxs("div", { className: "message-actions", children: [entry.type === 'md' && (_jsx(IconButton, { title: t.copy, "aria-label": t.copy, onClick: () => onCopyAll(entry, chat), children: _jsx(Copy, {}) })), entry.messageId && (_jsxs(_Fragment, { children: [_jsx(IconButton, { title: t.like, "aria-label": t.like, onClick: like, children: liked === true ? _jsx(LikeFill, {}) : _jsx(Like, {}) }), _jsx(IconButton, { title: t.dislike, "aria-label": t.dislike, onClick: dislike, children: liked === false ? _jsx(DislikeFill, {}) : _jsx(Dislike, {}) })] }))] }), _jsx(Text, { appearance: "microtext1", className: "chat-date", children: dateFormatter.formatForChatMessage(date) })] })] }, entry.messageId));