@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.
- package/CHANGELOG.md +19 -0
- package/dist/StackspotAIWidget.d.ts +3 -2
- package/dist/StackspotAIWidget.d.ts.map +1 -1
- package/dist/StackspotAIWidget.js +5 -4
- package/dist/StackspotAIWidget.js.map +1 -1
- package/dist/app-metadata.json +6 -6
- package/dist/chat-interceptors/send-message.d.ts.map +1 -1
- package/dist/chat-interceptors/send-message.js +7 -2
- package/dist/chat-interceptors/send-message.js.map +1 -1
- package/dist/components/ComponentNavigator.d.ts +38 -0
- package/dist/components/ComponentNavigator.d.ts.map +1 -0
- package/dist/components/ComponentNavigator.js +33 -0
- package/dist/components/ComponentNavigator.js.map +1 -0
- package/dist/components/ListResource.d.ts +29 -0
- package/dist/components/ListResource.d.ts.map +1 -0
- package/dist/components/ListResource.js +17 -0
- package/dist/components/ListResource.js.map +1 -0
- package/dist/components/RightPanelForm.d.ts.map +1 -1
- package/dist/components/RightPanelForm.js +29 -1
- package/dist/components/RightPanelForm.js.map +1 -1
- package/dist/components/Selector/index.js +5 -5
- package/dist/components/Selector/index.js.map +1 -1
- package/dist/components/Selector/styled.d.ts +3 -1
- package/dist/components/Selector/styled.d.ts.map +1 -1
- package/dist/components/Selector/styled.js +2 -1
- package/dist/components/Selector/styled.js.map +1 -1
- package/dist/components/WorkspaceTabNavigator.d.ts +17 -0
- package/dist/components/WorkspaceTabNavigator.d.ts.map +1 -0
- package/dist/components/WorkspaceTabNavigator.js +95 -0
- package/dist/components/WorkspaceTabNavigator.js.map +1 -0
- package/dist/components/form/DescribedCheckboxGroup.d.ts.map +1 -1
- package/dist/components/form/DescribedCheckboxGroup.js +23 -2
- package/dist/components/form/DescribedCheckboxGroup.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/state/ChatEntry.d.ts +17 -0
- package/dist/state/ChatEntry.d.ts.map +1 -1
- package/dist/state/ChatEntry.js.map +1 -1
- package/dist/views/Agents/AgentsPanel.d.ts.map +1 -1
- package/dist/views/Agents/AgentsPanel.js +19 -11
- package/dist/views/Agents/AgentsPanel.js.map +1 -1
- package/dist/views/Agents/AgentsTab.d.ts +9 -3
- package/dist/views/Agents/AgentsTab.d.ts.map +1 -1
- package/dist/views/Agents/AgentsTab.js +25 -7
- package/dist/views/Agents/AgentsTab.js.map +1 -1
- package/dist/views/Agents/dictionary.d.ts +1 -1
- package/dist/views/Agents/dictionary.d.ts.map +1 -1
- package/dist/views/Agents/dictionary.js +2 -0
- package/dist/views/Agents/dictionary.js.map +1 -1
- package/dist/views/Chat/ChatMessage.d.ts +16 -2
- package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
- package/dist/views/Chat/ChatMessage.js +14 -12
- package/dist/views/Chat/ChatMessage.js.map +1 -1
- package/dist/views/Chat/ChatMessages.d.ts +3 -2
- package/dist/views/Chat/ChatMessages.d.ts.map +1 -1
- package/dist/views/Chat/ChatMessages.js +2 -2
- package/dist/views/Chat/ChatMessages.js.map +1 -1
- package/dist/views/Chat/StepsList.js +2 -2
- package/dist/views/Chat/StepsList.js.map +1 -1
- package/dist/views/Chat/index.d.ts +3 -2
- package/dist/views/Chat/index.d.ts.map +1 -1
- package/dist/views/Chat/index.js +2 -2
- package/dist/views/Chat/index.js.map +1 -1
- package/dist/views/ChatHistory/utils.d.ts.map +1 -1
- package/dist/views/ChatHistory/utils.js +12 -3
- package/dist/views/ChatHistory/utils.js.map +1 -1
- package/dist/views/KnowledgeSources.d.ts +12 -0
- package/dist/views/KnowledgeSources.d.ts.map +1 -1
- package/dist/views/KnowledgeSources.js +20 -6
- package/dist/views/KnowledgeSources.js.map +1 -1
- package/dist/views/MessageInput/AgentSelector.d.ts.map +1 -1
- package/dist/views/MessageInput/AgentSelector.js +11 -7
- package/dist/views/MessageInput/AgentSelector.js.map +1 -1
- package/dist/views/MessageInput/ButtonGroup.js +2 -2
- package/dist/views/MessageInput/ButtonGroup.js.map +1 -1
- package/dist/views/MessageInput/QuickCommandSelector.d.ts.map +1 -1
- package/dist/views/MessageInput/QuickCommandSelector.js +12 -4
- package/dist/views/MessageInput/QuickCommandSelector.js.map +1 -1
- package/dist/views/MessageInput/dictionary.d.ts +1 -1
- package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
- package/dist/views/MessageInput/dictionary.js +4 -4
- package/dist/views/MessageInput/dictionary.js.map +1 -1
- package/dist/views/Stacks.d.ts +9 -0
- package/dist/views/Stacks.d.ts.map +1 -1
- package/dist/views/Stacks.js +37 -14
- package/dist/views/Stacks.js.map +1 -1
- package/dist/views/Workspaces/WorkspacesTab.d.ts +20 -0
- package/dist/views/Workspaces/WorkspacesTab.d.ts.map +1 -0
- package/dist/views/Workspaces/WorkspacesTab.js +64 -0
- package/dist/views/Workspaces/WorkspacesTab.js.map +1 -0
- package/dist/views/{Workspaces.d.ts → Workspaces/index.d.ts} +1 -1
- package/dist/views/Workspaces/index.d.ts.map +1 -0
- package/dist/views/Workspaces/index.js +67 -0
- package/dist/views/Workspaces/index.js.map +1 -0
- package/package.json +3 -3
- package/src/StackspotAIWidget.tsx +20 -6
- package/src/app-metadata.json +6 -6
- package/src/chat-interceptors/send-message.ts +7 -2
- package/src/components/ComponentNavigator.tsx +103 -0
- package/src/components/ListResource.tsx +60 -0
- package/src/components/RightPanelForm.tsx +29 -1
- package/src/components/Selector/index.tsx +5 -5
- package/src/components/Selector/styled.ts +3 -2
- package/src/components/WorkspaceTabNavigator.tsx +175 -0
- package/src/components/form/DescribedCheckboxGroup.tsx +38 -7
- package/src/index.ts +2 -0
- package/src/state/ChatEntry.ts +17 -0
- package/src/views/Agents/AgentsPanel.tsx +21 -11
- package/src/views/Agents/AgentsTab.tsx +42 -9
- package/src/views/Agents/dictionary.ts +3 -0
- package/src/views/Chat/ChatMessage.tsx +32 -18
- package/src/views/Chat/ChatMessages.tsx +11 -4
- package/src/views/Chat/StepsList.tsx +2 -2
- package/src/views/Chat/index.tsx +4 -3
- package/src/views/ChatHistory/utils.ts +14 -3
- package/src/views/KnowledgeSources.tsx +37 -14
- package/src/views/MessageInput/AgentSelector.tsx +20 -8
- package/src/views/MessageInput/ButtonGroup.tsx +3 -3
- package/src/views/MessageInput/QuickCommandSelector.tsx +19 -6
- package/src/views/MessageInput/dictionary.ts +4 -4
- package/src/views/Stacks.tsx +57 -17
- package/src/views/Workspaces/WorkspacesTab.tsx +120 -0
- package/src/views/Workspaces/index.tsx +76 -0
- package/dist/views/Workspaces.d.ts.map +0 -1
- package/dist/views/Workspaces.js +0 -103
- package/dist/views/Workspaces.js.map +0 -1
- 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":"
|
|
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
|
|
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;
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC;;MAEE;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC;IACtG;;OAEG;IACH,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB
|
|
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;
|
|
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":"
|
|
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.
|
|
25
|
-
|
|
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;
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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;
|
|
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 =
|
|
28
|
-
|
|
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:
|
|
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":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;
|
|
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" | "
|
|
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":"
|
|
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;
|
|
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
|
|
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":"
|
|
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 {
|
|
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) =>
|
|
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));
|