@eeacms/volto-eea-chatbot 2.0.1 → 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.
Files changed (80) hide show
  1. package/.eslintrc.js +6 -6
  2. package/CHANGELOG.md +2 -0
  3. package/jest-addon.config.js +1 -0
  4. package/package.json +1 -1
  5. package/src/ChatBlock/ChatBlockEdit.jsx +2 -1
  6. package/src/ChatBlock/chat/AIMessage.tsx +20 -16
  7. package/src/ChatBlock/chat/ChatMessage.tsx +1 -1
  8. package/src/ChatBlock/chat/ChatWindow.tsx +10 -11
  9. package/src/ChatBlock/chat/UserMessage.tsx +4 -4
  10. package/src/ChatBlock/components/AutoResizeTextarea.jsx +1 -1
  11. package/src/ChatBlock/components/ChatMessageFeedback.jsx +2 -2
  12. package/src/ChatBlock/components/EmptyState.jsx +1 -1
  13. package/src/ChatBlock/components/FeedbackModal.jsx +1 -1
  14. package/src/ChatBlock/components/HalloumiFeedback.jsx +2 -2
  15. package/src/ChatBlock/components/Source.jsx +2 -2
  16. package/src/ChatBlock/components/UserActionsToolbar.jsx +3 -3
  17. package/src/ChatBlock/components/WebResultIcon.tsx +2 -2
  18. package/src/ChatBlock/components/markdown/ClaimModal.jsx +3 -3
  19. package/src/ChatBlock/components/markdown/ClaimSegments.jsx +4 -4
  20. package/src/ChatBlock/components/markdown/{index.js → index.jsx} +1 -1
  21. package/src/ChatBlock/hooks/useChatController.ts +7 -4
  22. package/src/ChatBlock/hooks/useChatStreaming.ts +4 -4
  23. package/src/ChatBlock/hooks/useToolDisplayTiming.ts +1 -1
  24. package/src/ChatBlock/packets/MultiToolRenderer.tsx +11 -12
  25. package/src/ChatBlock/packets/RendererComponent.tsx +6 -3
  26. package/src/ChatBlock/packets/renderers/CustomToolRenderer.tsx +3 -3
  27. package/src/ChatBlock/packets/renderers/FetchToolRenderer.tsx +3 -3
  28. package/src/ChatBlock/packets/renderers/ImageToolRenderer.tsx +3 -3
  29. package/src/ChatBlock/packets/renderers/MessageTextRenderer.tsx +8 -8
  30. package/src/ChatBlock/packets/renderers/ReasoningRenderer.tsx +5 -5
  31. package/src/ChatBlock/packets/renderers/SearchToolRenderer.tsx +10 -10
  32. package/src/ChatBlock/services/messageProcessor.ts +6 -3
  33. package/src/ChatBlock/services/packetUtils.ts +2 -2
  34. package/src/ChatBlock/services/streamingService.ts +8 -2
  35. package/src/ChatBlock/utils/citations.ts +1 -1
  36. package/src/halloumi/filtering.test.js +199 -1
  37. package/src/ChatBlock/tests/AIMessage.test.jsx +0 -95
  38. package/src/ChatBlock/tests/AutoResizeTextarea.test.jsx +0 -49
  39. package/src/ChatBlock/tests/BlinkingDot.test.jsx +0 -71
  40. package/src/ChatBlock/tests/ChatMessage.test.jsx +0 -75
  41. package/src/ChatBlock/tests/ChatMessageFeedback.test.jsx +0 -73
  42. package/src/ChatBlock/tests/Citation.test.jsx +0 -107
  43. package/src/ChatBlock/tests/ClaimModal.test.jsx +0 -136
  44. package/src/ChatBlock/tests/ClaimSegments.test.jsx +0 -206
  45. package/src/ChatBlock/tests/CustomToolRenderer.test.jsx +0 -241
  46. package/src/ChatBlock/tests/EmptyState.test.jsx +0 -137
  47. package/src/ChatBlock/tests/FeedbackModal.test.jsx +0 -138
  48. package/src/ChatBlock/tests/FetchToolRenderer.test.jsx +0 -161
  49. package/src/ChatBlock/tests/HalloumiFeedback.test.jsx +0 -94
  50. package/src/ChatBlock/tests/ImageToolRenderer.test.jsx +0 -178
  51. package/src/ChatBlock/tests/MessageTextRenderer.test.jsx +0 -227
  52. package/src/ChatBlock/tests/MultiToolRenderer.test.jsx +0 -134
  53. package/src/ChatBlock/tests/QualityCheckToggle.test.jsx +0 -105
  54. package/src/ChatBlock/tests/ReasoningRenderer.test.jsx +0 -163
  55. package/src/ChatBlock/tests/RelatedQuestions.test.jsx +0 -215
  56. package/src/ChatBlock/tests/RenderClaimView.test.jsx +0 -191
  57. package/src/ChatBlock/tests/RendererComponent.test.jsx +0 -139
  58. package/src/ChatBlock/tests/SearchToolRenderer.test.jsx +0 -295
  59. package/src/ChatBlock/tests/Source.test.jsx +0 -79
  60. package/src/ChatBlock/tests/SourceChip.test.jsx +0 -108
  61. package/src/ChatBlock/tests/Spinner.test.jsx +0 -18
  62. package/src/ChatBlock/tests/UserActionsToolbar.test.jsx +0 -135
  63. package/src/ChatBlock/tests/UserMessage.test.jsx +0 -83
  64. package/src/ChatBlock/tests/WebResultIcon.test.jsx +0 -61
  65. package/src/ChatBlock/tests/citations.test.js +0 -114
  66. package/src/ChatBlock/tests/index.test.js +0 -51
  67. package/src/ChatBlock/tests/messageProcessor.test.jsx +0 -438
  68. package/src/ChatBlock/tests/packetUtils.test.js +0 -158
  69. package/src/ChatBlock/tests/schema.test.js +0 -166
  70. package/src/ChatBlock/tests/streamingService.test.js +0 -467
  71. package/src/ChatBlock/tests/useChatController.test.jsx +0 -268
  72. package/src/ChatBlock/tests/useChatStreaming.test.jsx +0 -163
  73. package/src/ChatBlock/tests/useDeepCompareMemoize.test.js +0 -107
  74. package/src/ChatBlock/tests/useMarked.test.jsx +0 -107
  75. package/src/ChatBlock/tests/useQualityMarkers.test.jsx +0 -150
  76. package/src/ChatBlock/tests/useScrollonStream.test.jsx +0 -121
  77. package/src/ChatBlock/tests/useToolDisplayTiming.test.jsx +0 -151
  78. package/src/ChatBlock/tests/utils.test.jsx +0 -241
  79. package/src/ChatBlock/tests/withOnyxData.test.jsx +0 -81
  80. /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 AddonConfigurationRegistry = require(`${voltoPath}/addon-registry.js`);
20
- const reg = new AddonConfigurationRegistry(projectRootPath);
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(reg.packages).map((o) => [
23
+ const addonAliases = Object.keys(registry.packages).map((o) => [
24
24
  o,
25
- reg.packages[o].modulePath,
25
+ registry.packages[o].modulePath,
26
26
  ]);
27
27
 
28
- const addonExtenders = reg.getEslintExtenders().map((m) => require(m));
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/packages/volto-slate/src'],
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,6 +4,8 @@ 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.2](https://github.com/eea/volto-eea-chatbot/compare/2.0.1...2.0.2) - 8 April 2026
8
+
7
9
  ### [2.0.1](https://github.com/eea/volto-eea-chatbot/compare/2.0.0...2.0.1) - 2 April 2026
8
10
 
9
11
  #### :bug: Bug Fixes
@@ -423,6 +423,7 @@ module.exports = {
423
423
  'schema\\.[jt]s?$',
424
424
  'index\\.[jt]s?$',
425
425
  'config\\.[jt]sx?$',
426
+ '/types/',
426
427
  ],
427
428
  moduleNameMapper: {
428
429
  '\\.(css|less|scss|sass)$': 'identity-obj-proxy',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-eea-chatbot",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "@eeacms/volto-eea-chatbot: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "author": "European Environment Agency: IDM2 A-Team",
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import { compose } from 'redux';
3
3
  import superagent from 'superagent';
4
- import { BlockDataForm, SidebarPortal } from '@plone/volto/components';
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 '../types/interfaces';
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 '../hooks';
18
- import { MultiToolRenderer, RendererComponent } from '../packets';
19
- import { addCitations } from '../utils/citations';
20
- import SVGIcon from '../components/Icon';
21
- import BotIcon from '../../icons/bot.svg';
22
- import ClearIcon from '../../icons/clear.svg';
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(() => import('../components/Source'));
28
+ const SourceDetails: any = loadable(
29
+ () => import('@eeacms/volto-eea-chatbot/ChatBlock/components/Source'),
30
+ );
26
31
  const UserActionsToolbar: any = loadable(
27
- () => import('../components/UserActionsToolbar'),
32
+ () =>
33
+ import('@eeacms/volto-eea-chatbot/ChatBlock/components/UserActionsToolbar'),
28
34
  );
29
35
  const RelatedQuestions: any = loadable(
30
- () => import('../components/RelatedQuestions'),
36
+ () =>
37
+ import('@eeacms/volto-eea-chatbot/ChatBlock/components/RelatedQuestions'),
31
38
  );
32
39
  const HalloumiFeedback: any = loadable(
33
- () => import('../components/HalloumiFeedback'),
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 '../types/interfaces';
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 '../types/interfaces';
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 '../types/streamingModels';
15
- import AutoResizeTextarea from '../components/AutoResizeTextarea';
16
- import QualityCheckToggle from '../components/QualityCheckToggle';
17
- import EmptyState from '../components/EmptyState';
18
- import { useChatController } from '../hooks';
19
- import SVGIcon from '../components/Icon';
20
- import PenIcon from '../../icons/square-pen.svg';
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 '../style.less';
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 '../types/interfaces';
1
+ import type { ChatMessageProps } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
2
2
  import loadable from '@loadable/component';
3
- import SVGIcon from '../components/Icon';
4
- import { components } from '../components/markdown';
5
- import UserIcon from '../../icons/user.svg';
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 '../../icons/send.svg';
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 '../../icons/thumbs-up.svg';
6
- import ThumbsDownIcon from '../../icons/thumbs-down.svg';
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,5 +1,5 @@
1
1
  import { Button } from 'semantic-ui-react';
2
- import { debounce } from '../utils';
2
+ import { debounce } from '@eeacms/volto-eea-chatbot/ChatBlock/utils';
3
3
 
4
4
  function StarterMessage({ msg, onClick }) {
5
5
  if (!(msg.name || msg.message)) return null;
@@ -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 '../utils';
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 '../../icons/glasses.svg';
10
- import RotateIcon from '../../icons/rotate.svg';
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 '../../icons/file.svg';
5
- import GlobeIcon from '../../icons/globe.svg';
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 '../utils';
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 '../../icons/copy.svg';
8
- import CheckIcon from '../../icons/check.svg';
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 '../../icons/file.svg';
4
- import GlobeIcon from '../../icons/globe.svg';
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 '../../utils';
4
- import SVGIcon from '../Icon';
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 '../../../icons/bot.svg';
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 '../Icon';
3
+ import SVGIcon from '@eeacms/volto-eea-chatbot/ChatBlock/components/Icon';
4
4
  import { RenderClaimView } from './RenderClaimView';
5
- import LinkIcon from '../../../icons/external-link.svg';
6
- import FileIcon from '../../../icons/file.svg';
7
- import GlobeIcon from '../../../icons/globe.svg';
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 '../../utils';
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 '../types/interfaces';
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 { createChatSession, sendMessage } from '../services/streamingService';
5
- import { PacketType } from '../types/streamingModels';
6
- import { ResearchType } from '../types/interfaces';
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 '../types/interfaces';
2
- import type { SendMessageParams } from '../services/streamingService';
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 '../services/streamingService';
5
- import { MessageProcessor } from '../services/messageProcessor';
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;
@@ -1,4 +1,4 @@
1
- import type { Packet } from '../types/streamingModels';
1
+ import type { Packet } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
2
2
  import { useMemo, useState, useCallback, useEffect } from 'react';
3
3
 
4
4
  interface ToolState {
@@ -1,13 +1,13 @@
1
- import type { Packet } from '../types/streamingModels';
2
- import type { Message } from '../types/interfaces';
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 '../types/streamingModels';
5
+ import { PacketType } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
6
6
  import { RendererComponent } from './RendererComponent';
7
- import { useToolDisplayTiming } from '../hooks/useToolDisplayTiming';
8
- import SVGIcon from '../components/Icon';
9
- import DoneIcon from '../../icons/done.svg';
10
- import ChevronIcon from '../../icons/chevron.svg';
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
- (group) =>
35
- group.packets?.some(
36
- (packet) => showTools?.includes(packet.obj.type as PacketType),
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 '../types/streamingModels';
2
- import type { RendererResult, Message } from '../types/interfaces';
3
- import { PacketType } from '../types/streamingModels';
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 '../../types/streamingModels';
6
- import type { MessageRenderer } from '../../types/interfaces';
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 '../../types/streamingModels';
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 '../../types/streamingModels';
5
- import type { MessageRenderer } from '../../types/interfaces';
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 '../../types/streamingModels';
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 '../../types/streamingModels';
7
- import type { MessageRenderer } from '../../types/interfaces';
8
- import { PacketType } from '../../types/streamingModels';
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 '../../types/streamingModels';
2
- import type { MessageRenderer } from '../../types/interfaces';
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 '../../components/markdown';
6
- import { isFinalAnswerComplete } from '../../services/packetUtils';
7
- import { PacketType } from '../../types/streamingModels';
8
- import { BlinkingDot } from '../../components/BlinkingDot';
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
- ? 1
108
- : 0;
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 '../../types/streamingModels';
5
- import type { MessageRenderer } from '../../types/interfaces';
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 '../../types/streamingModels';
9
- import { components } from '../../components/markdown';
10
- import { addCitations } from '../../utils/citations';
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 '../../types/streamingModels';
8
- import type { MessageRenderer } from '../../types/interfaces';
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 '../../types/streamingModels';
11
- import { SourceChip } from '../../components/SourceChip';
12
- import { BlinkingDot } from '../../components/BlinkingDot';
13
- import SVGIcon from '../../components/Icon';
14
- import { WebResultIcon } from '../../components/WebResultIcon';
15
- import SearchIcon from '../../../icons/search.svg';
16
- import GlobeIcon from '../../../icons/globe.svg';
17
- import FileIcon from '../../../icons/file.svg';
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 '../types/streamingModels';
9
- import type { Message, ToolCallMetadata } from '../types/interfaces';
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 '../types/streamingModels';
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 '../types/streamingModels';
2
- import { PacketType } from '../types/streamingModels';
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 {
@@ -1,5 +1,11 @@
1
- import { PacketType, type Packet } from '../types/streamingModels';
2
- import type { FileDescriptor, Filters } from '../types/interfaces';
1
+ import {
2
+ PacketType,
3
+ type Packet,
4
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/streamingModels';
5
+ import type {
6
+ FileDescriptor,
7
+ Filters,
8
+ } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
3
9
 
4
10
  export interface SendMessageParams {
5
11
  regenerate: boolean;
@@ -1,4 +1,4 @@
1
- import type { Message } from '../types/interfaces';
1
+ import type { Message } from '@eeacms/volto-eea-chatbot/ChatBlock/types/interfaces';
2
2
 
3
3
  /**
4
4
  * Regex to match citation markers like [1], [2], etc.