@eeacms/volto-eea-chatbot 2.0.0 → 2.0.2
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/.eslintrc.js +6 -6
- package/CHANGELOG.md +12 -1
- package/jest-addon.config.js +1 -0
- package/package.json +1 -1
- package/src/ChatBlock/ChatBlockEdit.jsx +2 -1
- package/src/ChatBlock/chat/AIMessage.tsx +20 -16
- package/src/ChatBlock/chat/ChatMessage.tsx +1 -1
- package/src/ChatBlock/chat/ChatWindow.tsx +10 -11
- package/src/ChatBlock/chat/UserMessage.tsx +4 -4
- package/src/ChatBlock/components/AutoResizeTextarea.jsx +1 -1
- package/src/ChatBlock/components/ChatMessageFeedback.jsx +2 -2
- package/src/ChatBlock/components/EmptyState.jsx +1 -1
- package/src/ChatBlock/components/FeedbackModal.jsx +1 -1
- package/src/ChatBlock/components/HalloumiFeedback.jsx +2 -2
- package/src/ChatBlock/components/Source.jsx +2 -2
- package/src/ChatBlock/components/UserActionsToolbar.jsx +3 -3
- package/src/ChatBlock/components/WebResultIcon.tsx +2 -2
- package/src/ChatBlock/components/markdown/ClaimModal.jsx +3 -3
- package/src/ChatBlock/components/markdown/ClaimSegments.jsx +4 -4
- package/src/ChatBlock/components/markdown/{index.js → index.jsx} +1 -1
- package/src/ChatBlock/hooks/useChatController.ts +7 -4
- package/src/ChatBlock/hooks/useChatStreaming.ts +4 -4
- package/src/ChatBlock/hooks/useToolDisplayTiming.ts +1 -1
- package/src/ChatBlock/index.js +8 -0
- package/src/ChatBlock/packets/MultiToolRenderer.tsx +11 -12
- package/src/ChatBlock/packets/RendererComponent.tsx +6 -3
- package/src/ChatBlock/packets/renderers/CustomToolRenderer.tsx +3 -3
- package/src/ChatBlock/packets/renderers/FetchToolRenderer.tsx +3 -3
- package/src/ChatBlock/packets/renderers/ImageToolRenderer.tsx +3 -3
- package/src/ChatBlock/packets/renderers/MessageTextRenderer.tsx +8 -8
- package/src/ChatBlock/packets/renderers/ReasoningRenderer.tsx +5 -5
- package/src/ChatBlock/packets/renderers/SearchToolRenderer.tsx +10 -10
- package/src/ChatBlock/services/messageProcessor.ts +6 -3
- package/src/ChatBlock/services/packetUtils.ts +2 -2
- package/src/ChatBlock/services/streamingService.ts +8 -2
- package/src/ChatBlock/utils/citations.ts +1 -1
- package/src/halloumi/filtering.test.js +199 -1
- package/src/ChatBlock/tests/AIMessage.test.jsx +0 -95
- package/src/ChatBlock/tests/AutoResizeTextarea.test.jsx +0 -49
- package/src/ChatBlock/tests/BlinkingDot.test.jsx +0 -71
- package/src/ChatBlock/tests/ChatMessage.test.jsx +0 -75
- package/src/ChatBlock/tests/ChatMessageFeedback.test.jsx +0 -73
- package/src/ChatBlock/tests/Citation.test.jsx +0 -107
- package/src/ChatBlock/tests/ClaimModal.test.jsx +0 -136
- package/src/ChatBlock/tests/ClaimSegments.test.jsx +0 -206
- package/src/ChatBlock/tests/CustomToolRenderer.test.jsx +0 -241
- package/src/ChatBlock/tests/EmptyState.test.jsx +0 -137
- package/src/ChatBlock/tests/FeedbackModal.test.jsx +0 -138
- package/src/ChatBlock/tests/FetchToolRenderer.test.jsx +0 -161
- package/src/ChatBlock/tests/HalloumiFeedback.test.jsx +0 -94
- package/src/ChatBlock/tests/ImageToolRenderer.test.jsx +0 -178
- package/src/ChatBlock/tests/MessageTextRenderer.test.jsx +0 -227
- package/src/ChatBlock/tests/MultiToolRenderer.test.jsx +0 -134
- package/src/ChatBlock/tests/QualityCheckToggle.test.jsx +0 -105
- package/src/ChatBlock/tests/ReasoningRenderer.test.jsx +0 -163
- package/src/ChatBlock/tests/RelatedQuestions.test.jsx +0 -215
- package/src/ChatBlock/tests/RenderClaimView.test.jsx +0 -191
- package/src/ChatBlock/tests/RendererComponent.test.jsx +0 -139
- package/src/ChatBlock/tests/SearchToolRenderer.test.jsx +0 -295
- package/src/ChatBlock/tests/Source.test.jsx +0 -79
- package/src/ChatBlock/tests/SourceChip.test.jsx +0 -108
- package/src/ChatBlock/tests/Spinner.test.jsx +0 -18
- package/src/ChatBlock/tests/UserActionsToolbar.test.jsx +0 -135
- package/src/ChatBlock/tests/UserMessage.test.jsx +0 -83
- package/src/ChatBlock/tests/WebResultIcon.test.jsx +0 -61
- package/src/ChatBlock/tests/citations.test.js +0 -114
- package/src/ChatBlock/tests/index.test.js +0 -51
- package/src/ChatBlock/tests/messageProcessor.test.jsx +0 -438
- package/src/ChatBlock/tests/packetUtils.test.js +0 -158
- package/src/ChatBlock/tests/schema.test.js +0 -166
- package/src/ChatBlock/tests/streamingService.test.js +0 -467
- package/src/ChatBlock/tests/useChatController.test.jsx +0 -268
- package/src/ChatBlock/tests/useChatStreaming.test.jsx +0 -163
- package/src/ChatBlock/tests/useDeepCompareMemoize.test.js +0 -107
- package/src/ChatBlock/tests/useMarked.test.jsx +0 -107
- package/src/ChatBlock/tests/useQualityMarkers.test.jsx +0 -150
- package/src/ChatBlock/tests/useScrollonStream.test.jsx +0 -121
- package/src/ChatBlock/tests/useToolDisplayTiming.test.jsx +0 -151
- package/src/ChatBlock/tests/utils.test.jsx +0 -241
- package/src/ChatBlock/tests/withOnyxData.test.jsx +0 -81
- /package/src/ChatBlock/{schema.js → schema.jsx} +0 -0
package/.eslintrc.js
CHANGED
|
@@ -16,16 +16,16 @@ if (configFile) {
|
|
|
16
16
|
voltoPath = `./${jsConfig.baseUrl}/${pathsConfig['@plone/volto'][0]}`;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
const
|
|
20
|
-
const
|
|
19
|
+
const { AddonRegistry } = require('@plone/registry/addon-registry');
|
|
20
|
+
const { registry } = AddonRegistry.init(projectRootPath);
|
|
21
21
|
|
|
22
22
|
// Extends ESlint configuration for adding aliases to `src` directories in Volto addons
|
|
23
|
-
const addonAliases = Object.keys(
|
|
23
|
+
const addonAliases = Object.keys(registry.packages).map((o) => [
|
|
24
24
|
o,
|
|
25
|
-
|
|
25
|
+
registry.packages[o].modulePath,
|
|
26
26
|
]);
|
|
27
27
|
|
|
28
|
-
const addonExtenders =
|
|
28
|
+
const addonExtenders = registry.getEslintExtenders().map((m) => require(m));
|
|
29
29
|
|
|
30
30
|
const defaultConfig = {
|
|
31
31
|
extends: `${voltoPath}/.eslintrc`,
|
|
@@ -34,7 +34,7 @@ const defaultConfig = {
|
|
|
34
34
|
alias: {
|
|
35
35
|
map: [
|
|
36
36
|
['@plone/volto', '@plone/volto/src'],
|
|
37
|
-
['@plone/volto-slate', '@plone/volto
|
|
37
|
+
['@plone/volto-slate', '@plone/volto-slate/src'],
|
|
38
38
|
...addonAliases,
|
|
39
39
|
['@package', `${__dirname}/src`],
|
|
40
40
|
['@root', `${__dirname}/src`],
|
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,16 @@ All notable changes to this project will be documented in this file. Dates are d
|
|
|
4
4
|
|
|
5
5
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
6
6
|
|
|
7
|
-
### [2.0.
|
|
7
|
+
### [2.0.2](https://github.com/eea/volto-eea-chatbot/compare/2.0.1...2.0.2) - 8 April 2026
|
|
8
|
+
|
|
9
|
+
### [2.0.1](https://github.com/eea/volto-eea-chatbot/compare/2.0.0...2.0.1) - 2 April 2026
|
|
10
|
+
|
|
11
|
+
#### :bug: Bug Fixes
|
|
12
|
+
|
|
13
|
+
- fix: Add bbb replacement for danswerChat [Tiberiu Ichim - [`6e6cbfc`](https://github.com/eea/volto-eea-chatbot/commit/6e6cbfc07ea10d2b92fa63a97e50a43a196eb739)]
|
|
14
|
+
- fix: make test [Alin V. (Claudiu) - [`ee005a0`](https://github.com/eea/volto-eea-chatbot/commit/ee005a0ec5edd7c2fdc7e213b995ff6b0d3a2128)]
|
|
15
|
+
|
|
16
|
+
## [2.0.0](https://github.com/eea/volto-eea-chatbot/compare/1.0.13...2.0.0) - 16 March 2026
|
|
8
17
|
|
|
9
18
|
#### :rocket: New Features
|
|
10
19
|
|
|
@@ -26,6 +35,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
26
35
|
#### :house: Internal changes
|
|
27
36
|
|
|
28
37
|
- style: Automated code fix [eea-jenkins - [`8a8c3c4`](https://github.com/eea/volto-eea-chatbot/commit/8a8c3c4172a4f669661378cf1b5a3569d85609e6)]
|
|
38
|
+
- chore: [JENKINSFILE] add package version in sonarqube [valentinab25 - [`535d986`](https://github.com/eea/volto-eea-chatbot/commit/535d986b7adc77743a668bc4ac63f835eef58df3)]
|
|
29
39
|
|
|
30
40
|
#### :hammer_and_wrench: Others
|
|
31
41
|
|
|
@@ -36,6 +46,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
36
46
|
#### :house: Internal changes
|
|
37
47
|
|
|
38
48
|
- style: Automated code fix [eea-jenkins - [`fdcd884`](https://github.com/eea/volto-eea-chatbot/commit/fdcd8848fd4c3f990ca5ea021f407487aebd6010)]
|
|
49
|
+
- chore: [JENKINSFILE] use sonarqube branches [EEA Jenkins - [`3d428d7`](https://github.com/eea/volto-eea-chatbot/commit/3d428d72f32c3d05452b0961c76f5db1c416e05c)]
|
|
39
50
|
|
|
40
51
|
#### :hammer_and_wrench: Others
|
|
41
52
|
|
package/jest-addon.config.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { compose } from 'redux';
|
|
3
3
|
import superagent from 'superagent';
|
|
4
|
-
import
|
|
4
|
+
import SidebarPortal from '@plone/volto/components/manage/Sidebar/SidebarPortal';
|
|
5
|
+
import BlockDataForm from '@plone/volto/components/manage/Form/BlockDataForm';
|
|
5
6
|
|
|
6
7
|
import ChatBlockView from './ChatBlockView';
|
|
7
8
|
import { ChatBlockSchema } from './schema';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { ChatMessageProps } from '
|
|
1
|
+
import type { ChatMessageProps } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
2
2
|
import { useState, useMemo, useEffect } from 'react';
|
|
3
3
|
import cx from 'classnames';
|
|
4
|
-
import visit from 'unist-util-visit';
|
|
4
|
+
import { visit } from 'unist-util-visit';
|
|
5
5
|
import loadable from '@loadable/component';
|
|
6
6
|
import {
|
|
7
7
|
Tab,
|
|
@@ -14,29 +14,33 @@ import {
|
|
|
14
14
|
useDeepCompareMemoize,
|
|
15
15
|
useQualityMarkers,
|
|
16
16
|
useScrollonStream,
|
|
17
|
-
} from '
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
import
|
|
17
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/hooks';
|
|
18
|
+
import {
|
|
19
|
+
MultiToolRenderer,
|
|
20
|
+
RendererComponent,
|
|
21
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/packets';
|
|
22
|
+
import { addCitations } from '@eeacms/volto-eea-chatbot/ChatBlock/utils/citations';
|
|
23
|
+
import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
|
|
24
|
+
import BotIcon from '@eeacms/volto-eea-chatbot/icons/bot.svg';
|
|
25
|
+
import ClearIcon from '@eeacms/volto-eea-chatbot/icons/clear.svg';
|
|
23
26
|
|
|
24
27
|
// Lazy load heavy components
|
|
25
|
-
const SourceDetails: any = loadable(
|
|
28
|
+
const SourceDetails: any = loadable(
|
|
29
|
+
() => import('@eeacms/volto-eea-chatbot/ChatBlock/components/Source'),
|
|
30
|
+
);
|
|
26
31
|
const UserActionsToolbar: any = loadable(
|
|
27
|
-
() =>
|
|
32
|
+
() =>
|
|
33
|
+
import('@eeacms/volto-eea-chatbot/ChatBlock/components/UserActionsToolbar'),
|
|
28
34
|
);
|
|
29
35
|
const RelatedQuestions: any = loadable(
|
|
30
|
-
() =>
|
|
36
|
+
() =>
|
|
37
|
+
import('@eeacms/volto-eea-chatbot/ChatBlock/components/RelatedQuestions'),
|
|
31
38
|
);
|
|
32
39
|
const HalloumiFeedback: any = loadable(
|
|
33
|
-
() =>
|
|
40
|
+
() =>
|
|
41
|
+
import('@eeacms/volto-eea-chatbot/ChatBlock/components/HalloumiFeedback'),
|
|
34
42
|
);
|
|
35
43
|
|
|
36
|
-
function capitalize(str: string) {
|
|
37
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
44
|
function addQualityMarkersPlugin() {
|
|
41
45
|
return function (tree: any) {
|
|
42
46
|
visit(tree, 'element', function (node: any) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Message as SemanticMessage } from 'semantic-ui-react';
|
|
2
|
-
import type { ChatMessageProps } from '
|
|
2
|
+
import type { ChatMessageProps } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
3
3
|
import { UserMessage, AIMessage } from '.';
|
|
4
4
|
|
|
5
5
|
export function ChatMessage(props: ChatMessageProps) {
|
|
@@ -5,21 +5,21 @@ import React, {
|
|
|
5
5
|
useMemo,
|
|
6
6
|
useCallback,
|
|
7
7
|
} from 'react';
|
|
8
|
-
import type { Persona } from '
|
|
8
|
+
import type { Persona } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
9
9
|
import { Button, Form, Segment, Checkbox } from 'semantic-ui-react';
|
|
10
10
|
import { injectLazyLibs } from '@plone/volto/helpers/Loadable';
|
|
11
11
|
import { trackEvent } from '@eeacms/volto-matomo/utils';
|
|
12
12
|
|
|
13
13
|
import { ChatMessage } from '.';
|
|
14
|
-
import { PacketType } from '
|
|
15
|
-
import AutoResizeTextarea from '
|
|
16
|
-
import QualityCheckToggle from '
|
|
17
|
-
import EmptyState from '
|
|
18
|
-
import { useChatController } from '
|
|
19
|
-
import SVGIcon from '
|
|
20
|
-
import PenIcon from '
|
|
14
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
15
|
+
import AutoResizeTextarea from '@eeacms/volto-eea-chatbot/ChatBlock/components/AutoResizeTextarea';
|
|
16
|
+
import QualityCheckToggle from '@eeacms/volto-eea-chatbot/ChatBlock/components/QualityCheckToggle';
|
|
17
|
+
import EmptyState from '@eeacms/volto-eea-chatbot/ChatBlock/components/EmptyState';
|
|
18
|
+
import { useChatController } from '@eeacms/volto-eea-chatbot/ChatBlock/hooks';
|
|
19
|
+
import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
|
|
20
|
+
import PenIcon from '@eeacms/volto-eea-chatbot/icons/square-pen.svg';
|
|
21
21
|
|
|
22
|
-
import '
|
|
22
|
+
import '@eeacms/volto-eea-chatbot/ChatBlock/style.less';
|
|
23
23
|
|
|
24
24
|
interface ChatWindowProps {
|
|
25
25
|
block_id?: string;
|
|
@@ -182,9 +182,8 @@ function ChatWindow({
|
|
|
182
182
|
style={{ maxHeight: height }}
|
|
183
183
|
>
|
|
184
184
|
{messages.map((message, index) => (
|
|
185
|
-
<React.Fragment>
|
|
185
|
+
<React.Fragment key={message.messageId}>
|
|
186
186
|
<ChatMessage
|
|
187
|
-
key={message.messageId}
|
|
188
187
|
prevMessage={messages[index - 1]}
|
|
189
188
|
message={message}
|
|
190
189
|
isLoading={isStreaming}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ChatMessageProps } from '
|
|
1
|
+
import type { ChatMessageProps } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
2
2
|
import loadable from '@loadable/component';
|
|
3
|
-
import SVGIcon from '
|
|
4
|
-
import { components } from '
|
|
5
|
-
import UserIcon from '
|
|
3
|
+
import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
|
|
4
|
+
import { components } from '@eeacms/volto-eea-chatbot/ChatBlock/components/markdown';
|
|
5
|
+
import UserIcon from '@eeacms/volto-eea-chatbot/icons/user.svg';
|
|
6
6
|
|
|
7
7
|
const Markdown: any = loadable(() => import('react-markdown'));
|
|
8
8
|
|
|
@@ -4,7 +4,7 @@ import { trackEvent } from '@eeacms/volto-matomo/utils';
|
|
|
4
4
|
import TextareaAutosize from 'react-textarea-autosize';
|
|
5
5
|
|
|
6
6
|
import SVGIcon from './Icon';
|
|
7
|
-
import SendIcon from '
|
|
7
|
+
import SendIcon from '@eeacms/volto-eea-chatbot/icons/send.svg';
|
|
8
8
|
|
|
9
9
|
export default React.forwardRef(function AutoResizeTextarea(props, ref) {
|
|
10
10
|
const { onSubmit, isStreaming, enableMatomoTracking, persona, ...rest } =
|
|
@@ -2,8 +2,8 @@ import { useState } from 'react';
|
|
|
2
2
|
import { Button, Icon } from 'semantic-ui-react';
|
|
3
3
|
import FeedbackModal from './FeedbackModal';
|
|
4
4
|
import SVGIcon from './Icon';
|
|
5
|
-
import ThumbsUpIcon from '
|
|
6
|
-
import ThumbsDownIcon from '
|
|
5
|
+
import ThumbsUpIcon from '@eeacms/volto-eea-chatbot/icons/thumbs-up.svg';
|
|
6
|
+
import ThumbsDownIcon from '@eeacms/volto-eea-chatbot/icons/thumbs-down.svg';
|
|
7
7
|
|
|
8
8
|
const Toast = ({ message, type, isActive }) => (
|
|
9
9
|
<div className={`feedback-toast ${type} ${isActive ? 'active' : ''}`}>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { trackEvent } from '@eeacms/volto-matomo/utils';
|
|
3
3
|
import { Modal, Button, TextArea, Form, Icon } from 'semantic-ui-react';
|
|
4
|
-
import { createChatMessageFeedback } from '
|
|
4
|
+
import { createChatMessageFeedback } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
|
|
5
5
|
|
|
6
6
|
const FeedbackModal = ({
|
|
7
7
|
modalOpen,
|
|
@@ -6,8 +6,8 @@ import Spinner from './Spinner';
|
|
|
6
6
|
import SVGIcon from './Icon';
|
|
7
7
|
import { getSupportedBgColor } from './markdown/colors';
|
|
8
8
|
|
|
9
|
-
import GlassesIcon from '
|
|
10
|
-
import RotateIcon from '
|
|
9
|
+
import GlassesIcon from '@eeacms/volto-eea-chatbot/icons/glasses.svg';
|
|
10
|
+
import RotateIcon from '@eeacms/volto-eea-chatbot/icons/rotate.svg';
|
|
11
11
|
|
|
12
12
|
const VERIFY_CLAIM_MESSAGES = [
|
|
13
13
|
'Going through each claim and verify against the referenced documents...',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Popup } from 'semantic-ui-react';
|
|
2
2
|
import SVGIcon from './Icon';
|
|
3
3
|
|
|
4
|
-
import FileIcon from '
|
|
5
|
-
import GlobeIcon from '
|
|
4
|
+
import FileIcon from '@eeacms/volto-eea-chatbot/icons/file.svg';
|
|
5
|
+
import GlobeIcon from '@eeacms/volto-eea-chatbot/icons/globe.svg';
|
|
6
6
|
|
|
7
7
|
import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable';
|
|
8
8
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import cx from 'classnames';
|
|
2
2
|
import { Button } from 'semantic-ui-react';
|
|
3
|
-
import { useCopyToClipboard } from '
|
|
3
|
+
import { useCopyToClipboard } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
|
|
4
4
|
import SVGIcon from './Icon';
|
|
5
5
|
import ChatMessageFeedback from './ChatMessageFeedback';
|
|
6
6
|
|
|
7
|
-
import CopyIcon from '
|
|
8
|
-
import CheckIcon from '
|
|
7
|
+
import CopyIcon from '@eeacms/volto-eea-chatbot/icons/copy.svg';
|
|
8
|
+
import CheckIcon from '@eeacms/volto-eea-chatbot/icons/check.svg';
|
|
9
9
|
|
|
10
10
|
const UserActionsToolbar = ({
|
|
11
11
|
className,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useState } from 'react';
|
|
2
2
|
import SVGIcon from './Icon';
|
|
3
|
-
import FileIcon from '
|
|
4
|
-
import GlobeIcon from '
|
|
3
|
+
import FileIcon from '@eeacms/volto-eea-chatbot/icons/file.svg';
|
|
4
|
+
import GlobeIcon from '@eeacms/volto-eea-chatbot/icons/globe.svg';
|
|
5
5
|
|
|
6
6
|
interface WebResultIconProps {
|
|
7
7
|
url: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Modal, ModalContent, ModalHeader } from 'semantic-ui-react';
|
|
2
2
|
import cx from 'classnames';
|
|
3
|
-
import { convertToPercentage } from '
|
|
4
|
-
import SVGIcon from '
|
|
3
|
+
import { convertToPercentage } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
|
|
4
|
+
import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
|
|
5
5
|
import { getSupportedBgColor } from './colors';
|
|
6
6
|
import { ClaimSegments } from './ClaimSegments';
|
|
7
7
|
|
|
8
|
-
import BotIcon from '
|
|
8
|
+
import BotIcon from '@eeacms/volto-eea-chatbot/icons/bot.svg';
|
|
9
9
|
|
|
10
10
|
const stripHtml = (html) => {
|
|
11
11
|
const tmp = document.createElement('div');
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Tab, TabPane } from 'semantic-ui-react';
|
|
3
|
-
import SVGIcon from '
|
|
3
|
+
import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
|
|
4
4
|
import { RenderClaimView } from './RenderClaimView';
|
|
5
|
-
import LinkIcon from '
|
|
6
|
-
import FileIcon from '
|
|
7
|
-
import GlobeIcon from '
|
|
5
|
+
import LinkIcon from '@eeacms/volto-eea-chatbot/icons/external-link.svg';
|
|
6
|
+
import FileIcon from '@eeacms/volto-eea-chatbot/icons/file.svg';
|
|
7
|
+
import GlobeIcon from '@eeacms/volto-eea-chatbot/icons/globe.svg';
|
|
8
8
|
|
|
9
9
|
const VISIBLE_SEGMENTS = 50; // Number of citations to show by default
|
|
10
10
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ClaimModal } from './ClaimModal';
|
|
3
3
|
import { Citation } from './Citation';
|
|
4
|
-
import { transformEmailsToLinks } from '
|
|
4
|
+
import { transformEmailsToLinks } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
|
|
5
5
|
|
|
6
6
|
export function components(message, markers, citedSources) {
|
|
7
7
|
return {
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type { Message } from '
|
|
1
|
+
import type { Message } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
2
2
|
import { useState, useCallback, useRef, useEffect } from 'react';
|
|
3
3
|
import { useChatStreaming } from './useChatStreaming';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import {
|
|
5
|
+
createChatSession,
|
|
6
|
+
sendMessage,
|
|
7
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/services/streamingService';
|
|
8
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
9
|
+
import { ResearchType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
7
10
|
|
|
8
11
|
interface UseChatControllerProps {
|
|
9
12
|
personaId: number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { Message } from '
|
|
2
|
-
import type { SendMessageParams } from '
|
|
1
|
+
import type { Message } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
2
|
+
import type { SendMessageParams } from '@eeacms/volto-eea-chatbot/ChatBlock/services/streamingService';
|
|
3
3
|
import { useState, useCallback, useRef } from 'react';
|
|
4
|
-
import { sendMessage } from '
|
|
5
|
-
import { MessageProcessor } from '
|
|
4
|
+
import { sendMessage } from '@eeacms/volto-eea-chatbot/ChatBlock/services/streamingService';
|
|
5
|
+
import { MessageProcessor } from '@eeacms/volto-eea-chatbot/ChatBlock/services/messageProcessor';
|
|
6
6
|
|
|
7
7
|
interface UseChatStreamingProps {
|
|
8
8
|
onMessageUpdate?: (message: Message, processor: MessageProcessor) => void;
|
package/src/ChatBlock/index.js
CHANGED
|
@@ -28,5 +28,13 @@ export default function installChatBlock(config) {
|
|
|
28
28
|
},
|
|
29
29
|
variations: [],
|
|
30
30
|
};
|
|
31
|
+
|
|
32
|
+
if (!config.blocks.blocksConfig.danswerChat) {
|
|
33
|
+
config.blocks.blocksConfig.danswerChat = {
|
|
34
|
+
...config.blocks.blocksConfig.eeaChatbot,
|
|
35
|
+
id: 'danswerChat',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
31
39
|
return config;
|
|
32
40
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { Packet } from '
|
|
2
|
-
import type { Message } from '
|
|
1
|
+
import type { Packet } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
2
|
+
import type { Message } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
3
3
|
import React, { useState, useEffect, useMemo } from 'react';
|
|
4
4
|
import cx from 'classnames';
|
|
5
|
-
import { PacketType } from '
|
|
5
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
6
6
|
import { RendererComponent } from './RendererComponent';
|
|
7
|
-
import { useToolDisplayTiming } from '
|
|
8
|
-
import SVGIcon from '
|
|
9
|
-
import DoneIcon from '
|
|
10
|
-
import ChevronIcon from '
|
|
7
|
+
import { useToolDisplayTiming } from '@eeacms/volto-eea-chatbot/ChatBlock/hooks/useToolDisplayTiming';
|
|
8
|
+
import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
|
|
9
|
+
import DoneIcon from '@eeacms/volto-eea-chatbot/icons/done.svg';
|
|
10
|
+
import ChevronIcon from '@eeacms/volto-eea-chatbot/icons/chevron.svg';
|
|
11
11
|
|
|
12
12
|
interface MultiToolRendererProps {
|
|
13
13
|
toolGroups: { ind: number; packets: Packet[] }[];
|
|
@@ -30,11 +30,10 @@ export function MultiToolRenderer({
|
|
|
30
30
|
// Filter tool groups based on allowed tool types
|
|
31
31
|
const filteredToolGroups = useMemo(
|
|
32
32
|
() =>
|
|
33
|
-
toolGroups.filter(
|
|
34
|
-
(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
),
|
|
33
|
+
toolGroups.filter((group) =>
|
|
34
|
+
group.packets?.some((packet) =>
|
|
35
|
+
showTools?.includes(packet.obj.type as PacketType),
|
|
36
|
+
),
|
|
38
37
|
),
|
|
39
38
|
[toolGroups, showTools],
|
|
40
39
|
);
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import type { Packet } from '
|
|
2
|
-
import type {
|
|
3
|
-
|
|
1
|
+
import type { Packet } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
2
|
+
import type {
|
|
3
|
+
RendererResult,
|
|
4
|
+
Message,
|
|
5
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
6
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
4
7
|
import {
|
|
5
8
|
MessageTextRenderer,
|
|
6
9
|
SearchToolRenderer,
|
|
@@ -2,10 +2,10 @@ import type {
|
|
|
2
2
|
CustomToolPacket,
|
|
3
3
|
CustomToolStart,
|
|
4
4
|
CustomToolDelta,
|
|
5
|
-
} from '
|
|
6
|
-
import type { MessageRenderer } from '
|
|
5
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
6
|
+
import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
7
7
|
import { useEffect } from 'react';
|
|
8
|
-
import { PacketType } from '
|
|
8
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
9
9
|
|
|
10
10
|
export const CustomToolRenderer: MessageRenderer<CustomToolPacket> = ({
|
|
11
11
|
packets,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
FetchToolPacket,
|
|
3
3
|
FetchToolStart,
|
|
4
|
-
} from '
|
|
5
|
-
import type { MessageRenderer } from '
|
|
4
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
5
|
+
import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
6
6
|
import { useEffect } from 'react';
|
|
7
|
-
import { PacketType } from '
|
|
7
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
8
8
|
|
|
9
9
|
export const FetchToolRenderer: MessageRenderer<FetchToolPacket> = ({
|
|
10
10
|
packets,
|
|
@@ -3,9 +3,9 @@ import type {
|
|
|
3
3
|
ImageGenerationToolPacket,
|
|
4
4
|
ImageGenerationToolDelta,
|
|
5
5
|
GeneratedImage,
|
|
6
|
-
} from '
|
|
7
|
-
import type { MessageRenderer } from '
|
|
8
|
-
import { PacketType } from '
|
|
6
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
7
|
+
import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
8
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
9
9
|
|
|
10
10
|
export const ImageToolRenderer: MessageRenderer<ImageGenerationToolPacket> = ({
|
|
11
11
|
packets,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { ChatPacket } from '
|
|
2
|
-
import type { MessageRenderer } from '
|
|
1
|
+
import type { ChatPacket } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
2
|
+
import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
3
3
|
import { useEffect, useMemo, useState } from 'react';
|
|
4
4
|
import loadable from '@loadable/component';
|
|
5
|
-
import { components } from '
|
|
6
|
-
import { isFinalAnswerComplete } from '
|
|
7
|
-
import { PacketType } from '
|
|
8
|
-
import { BlinkingDot } from '
|
|
5
|
+
import { components } from '@eeacms/volto-eea-chatbot/ChatBlock/components/markdown';
|
|
6
|
+
import { isFinalAnswerComplete } from '@eeacms/volto-eea-chatbot/ChatBlock/services/packetUtils';
|
|
7
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
8
|
+
import { BlinkingDot } from '@eeacms/volto-eea-chatbot/ChatBlock/components/BlinkingDot';
|
|
9
9
|
|
|
10
10
|
const Markdown: any = loadable(() => import('react-markdown'));
|
|
11
11
|
|
|
@@ -104,8 +104,8 @@ export const MessageTextRenderer: MessageRenderer<ChatPacket> = ({
|
|
|
104
104
|
const resetCount = isStreamFinished
|
|
105
105
|
? packets.length // Show all if stream is finished
|
|
106
106
|
: packets.length > 0
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
? 1
|
|
108
|
+
: 0;
|
|
109
109
|
setDisplayedPacketCount(resetCount);
|
|
110
110
|
}
|
|
111
111
|
}, [animate, packets.length, displayedPacketCount, isStreamFinished]);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
ReasoningPacket,
|
|
3
3
|
ReasoningDelta,
|
|
4
|
-
} from '
|
|
5
|
-
import type { MessageRenderer } from '
|
|
4
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
5
|
+
import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
6
6
|
import { useEffect, useState, useRef, useMemo } from 'react';
|
|
7
7
|
import loadable from '@loadable/component';
|
|
8
|
-
import { PacketType } from '
|
|
9
|
-
import { components } from '
|
|
10
|
-
import { addCitations } from '
|
|
8
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
9
|
+
import { components } from '@eeacms/volto-eea-chatbot/ChatBlock/components/markdown';
|
|
10
|
+
import { addCitations } from '@eeacms/volto-eea-chatbot/ChatBlock/utils/citations';
|
|
11
11
|
|
|
12
12
|
const Markdown: any = loadable(() => import('react-markdown'));
|
|
13
13
|
|
|
@@ -4,17 +4,17 @@ import type {
|
|
|
4
4
|
SearchToolDelta,
|
|
5
5
|
SectionEnd,
|
|
6
6
|
OnyxDocument,
|
|
7
|
-
} from '
|
|
8
|
-
import type { MessageRenderer } from '
|
|
7
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
8
|
+
import type { MessageRenderer } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
9
9
|
import { useEffect, useState, useRef, useMemo } from 'react';
|
|
10
|
-
import { PacketType } from '
|
|
11
|
-
import { SourceChip } from '
|
|
12
|
-
import { BlinkingDot } from '
|
|
13
|
-
import SVGIcon from '
|
|
14
|
-
import { WebResultIcon } from '
|
|
15
|
-
import SearchIcon from '
|
|
16
|
-
import GlobeIcon from '
|
|
17
|
-
import FileIcon from '
|
|
10
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
11
|
+
import { SourceChip } from '@eeacms/volto-eea-chatbot/ChatBlock/components/SourceChip';
|
|
12
|
+
import { BlinkingDot } from '@eeacms/volto-eea-chatbot/ChatBlock/components/BlinkingDot';
|
|
13
|
+
import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
|
|
14
|
+
import { WebResultIcon } from '@eeacms/volto-eea-chatbot/ChatBlock/components/WebResultIcon';
|
|
15
|
+
import SearchIcon from '@eeacms/volto-eea-chatbot/icons/search.svg';
|
|
16
|
+
import GlobeIcon from '@eeacms/volto-eea-chatbot/icons/globe.svg';
|
|
17
|
+
import FileIcon from '@eeacms/volto-eea-chatbot/icons/file.svg';
|
|
18
18
|
|
|
19
19
|
const INITIAL_RESULTS_TO_SHOW = 3;
|
|
20
20
|
const RESULTS_PER_EXPANSION = 10;
|
|
@@ -5,14 +5,17 @@ import type {
|
|
|
5
5
|
OnyxDocument,
|
|
6
6
|
Packet,
|
|
7
7
|
StreamingCitation,
|
|
8
|
-
} from '
|
|
9
|
-
import type {
|
|
8
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
9
|
+
import type {
|
|
10
|
+
Message,
|
|
11
|
+
ToolCallMetadata,
|
|
12
|
+
} from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
|
|
10
13
|
import {
|
|
11
14
|
getSynteticPacket,
|
|
12
15
|
isToolPacket,
|
|
13
16
|
isDisplayPacket,
|
|
14
17
|
} from './packetUtils';
|
|
15
|
-
import { PacketType } from '
|
|
18
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
16
19
|
|
|
17
20
|
/**
|
|
18
21
|
* Process streaming packets into a message object
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Packet } from '
|
|
2
|
-
import { PacketType } from '
|
|
1
|
+
import type { Packet } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
2
|
+
import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
|
|
3
3
|
|
|
4
4
|
export function getSynteticPacket(ind: number, type: PacketType): Packet {
|
|
5
5
|
return {
|