@stack-spot/ai-chat-widget 2.7.1 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/app-metadata.json +2 -2
  3. package/dist/chat-interceptors/send-message.d.ts.map +1 -1
  4. package/dist/chat-interceptors/send-message.js +0 -15
  5. package/dist/chat-interceptors/send-message.js.map +1 -1
  6. package/dist/context/hooks.d.ts +1 -0
  7. package/dist/context/hooks.d.ts.map +1 -1
  8. package/dist/context/hooks.js +24 -0
  9. package/dist/context/hooks.js.map +1 -1
  10. package/dist/utils/tools.d.ts +17 -8
  11. package/dist/utils/tools.d.ts.map +1 -1
  12. package/dist/utils/tools.js +20 -9
  13. package/dist/utils/tools.js.map +1 -1
  14. package/dist/views/Agents/AgentDescription.d.ts.map +1 -1
  15. package/dist/views/Agents/AgentDescription.js +5 -14
  16. package/dist/views/Agents/AgentDescription.js.map +1 -1
  17. package/dist/views/Agents/AgentsTab.d.ts.map +1 -1
  18. package/dist/views/Agents/AgentsTab.js +3 -2
  19. package/dist/views/Agents/AgentsTab.js.map +1 -1
  20. package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
  21. package/dist/views/Chat/ChatMessage.js +14 -21
  22. package/dist/views/Chat/ChatMessage.js.map +1 -1
  23. package/dist/views/Chat/StepsList.d.ts +2 -8
  24. package/dist/views/Chat/StepsList.d.ts.map +1 -1
  25. package/dist/views/Chat/StepsList.js +7 -6
  26. package/dist/views/Chat/StepsList.js.map +1 -1
  27. package/dist/views/Resources.js +8 -5
  28. package/dist/views/Resources.js.map +1 -1
  29. package/dist/views/Tools.js +1 -1
  30. package/dist/views/Tools.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/app-metadata.json +2 -2
  33. package/src/chat-interceptors/send-message.ts +0 -17
  34. package/src/context/hooks.ts +24 -0
  35. package/src/utils/tools.ts +28 -17
  36. package/src/views/Agents/AgentDescription.tsx +40 -36
  37. package/src/views/Agents/AgentsTab.tsx +3 -2
  38. package/src/views/Chat/ChatMessage.tsx +14 -22
  39. package/src/views/Chat/StepsList.tsx +8 -8
  40. package/src/views/Resources.tsx +11 -10
  41. package/src/views/Tools.tsx +1 -1
@@ -7,7 +7,7 @@ import { findLast, findLastIndex } from 'lodash';
7
7
  import { useEffect, useMemo } from 'react';
8
8
  import styled from 'styled-components';
9
9
  import { Markdown } from '../../components/Markdown.js';
10
- import { useChat, useChatMessages, useCurrentChat, useCurrentChatMessages, useWidget } from '../../context/hooks.js';
10
+ import { useChat, useChatMessages, useCurrentChat, useCurrentChatMessages, useIsLastEntryInCurrentChat, useWidget } from '../../context/hooks.js';
11
11
  import { ChatEntry } from '../../state/ChatEntry.js';
12
12
  import { planningToolDictionaryHelper } from '../../utils/planning-tool.js';
13
13
  import { updateToolStep } from '../../utils/update-tool-step.js';
@@ -54,10 +54,11 @@ const AwaitingApproval = ({ customApproveText, chatId }) => {
54
54
  };
55
55
  return _jsx(_Fragment, { children: _jsxs(Row, { gap: "8px", children: [_jsx(Button, { colorScheme: "light", onClick: () => onAnswer(t.cancel), children: _jsxs(Row, { gap: "8px", children: [_jsx(Icon, { icon: "Stop" }), t.cancel] }) }), _jsx(Button, { colorScheme: "inverse", onClick: () => onAnswer(customApproveText ?? t.approve), children: _jsxs(Row, { gap: "8px", children: [_jsx(Icon, { group: "fill", icon: "Play" }), customApproveText ?? t.approve] }) })] }) });
56
56
  };
57
- export const ToolStepsList = ({ toolStep, messageId, chatId }) => {
57
+ const ToolStepsList = ({ toolStep, messageId, chatId }) => {
58
58
  const t = useTranslate(dictionary);
59
59
  const chat = useCurrentChat();
60
60
  const messages = useCurrentChatMessages();
61
+ const isLastMessage = useIsLastEntryInCurrentChat(messageId);
61
62
  const inputParsed = `\`\`\`json
62
63
  ${JSON.stringify(toolStep?.input, null, 2)}
63
64
  \`\`\``;
@@ -74,10 +75,11 @@ export const ToolStepsList = ({ toolStep, messageId, chatId }) => {
74
75
  return;
75
76
  updateToolStep(messages, executionId, toolStep.status);
76
77
  }, [messages, toolStep, toolStep.status]);
77
- return _jsx(_Fragment, { children: toolStep && tool ? _jsx(AnimatedHeight, { children: _jsxs("div", { className: "steps", children: [_jsxs(Badge, { colorPalette: "yellow", appearance: "square", style: { whiteSpace: 'nowrap' }, children: [_jsx(Icon, { icon: "StopWatch" }), _jsxs(Text, { children: [tool.name, " ", t.keepWorking] })] }), _jsxs(Card, { mt: "16px", gap: "8px", bgLevel: 500, children: [_jsxs(Row, { children: [_jsx(ImageWithFallback, { src: tool.image, width: "32px", fallback: _jsx(IconBox, { appearance: "circle", icon: "StackSpot" }) }), _jsx(Text, { children: tool.name })] }), _jsx(Text, { children: toolStep.user_question }), _jsx(Accordion, { header: expand => _jsxs(Row, { gap: "8px", mb: "4px", children: [_jsx(Card, { p: "4px", bgLevel: 400, children: expand }), _jsxs(Text, { children: [" ", t.viewDetails, " "] })] }), children: _jsx(Markdown, { onCopyCode: (code) => onCopyCode(code, `${messageId}`, chat), children: inputParsed }) }), _jsx(AwaitingApproval, { customApproveText: t.approveTool, chatId: chatId })] })] }) }) : null });
78
+ return _jsx(_Fragment, { children: toolStep && tool ? _jsx(AnimatedHeight, { children: _jsxs("div", { className: "steps", children: [_jsxs(Badge, { colorPalette: "yellow", appearance: "square", style: { whiteSpace: 'nowrap' }, children: [_jsx(Icon, { icon: "StopWatch" }), _jsxs(Text, { children: [tool.name, " ", t.keepWorking] })] }), _jsxs(Card, { mt: "16px", gap: "8px", bgLevel: 500, children: [_jsxs(Row, { children: [_jsx(ImageWithFallback, { src: tool.image, width: "32px", fallback: _jsx(IconBox, { appearance: "circle", icon: "StackSpot" }) }), _jsx(Text, { children: tool.name })] }), _jsx(Text, { children: toolStep.user_question }), _jsx(Accordion, { header: expand => _jsxs(Row, { gap: "8px", mb: "4px", children: [_jsx(Card, { p: "4px", bgLevel: 400, children: expand }), _jsxs(Text, { children: [" ", t.viewDetails, " "] })] }), children: _jsx(Markdown, { onCopyCode: (code) => onCopyCode(code, `${messageId}`, chat), children: inputParsed }) }), isLastMessage && _jsx(AwaitingApproval, { customApproveText: t.approveTool, chatId: chatId })] })] }) }) : null });
78
79
  };
79
- export const StepsList = ({ steps, messageId, chatId, userHasAlreadyAnswered }) => {
80
+ export const StepsList = ({ steps, messageId, chatId }) => {
80
81
  const t = useTranslate(dictionary);
82
+ const isLastMessage = useIsLastEntryInCurrentChat(messageId);
81
83
  const filteredSteps = steps.filter(s => s.type === 'step');
82
84
  const actualSteps = useMemo(() => filteredSteps.filter((item) => {
83
85
  const messageIdForStep = planningToolDictionaryHelper.getMessageIdFromStepId(item.id);
@@ -120,8 +122,7 @@ export const StepsList = ({ steps, messageId, chatId, userHasAlreadyAnswered })
120
122
  let currentStepIndex = findLastIndex(actualSteps, s => s.status === 'running' || s.status === 'success');
121
123
  if (currentStepIndex === -1)
122
124
  currentStepIndex = 0;
123
- return (_jsxs(_Fragment, { children: [actualSteps.length > 0 ? _jsx(AnimatedHeight, { children: _jsxs("div", { className: "steps", children: [_jsxs(Row, { gap: "14px", mb: "8px", ml: "5px", children: [_jsx(Icon, { icon: "Target", size: "sm", color: "light.600" }), _jsx(Text, { children: t.executionPlan })] }), _jsxs("ul", { className: "steps-list", children: [actualSteps.map((s, i) => _jsx(Step, { step: s, index: i + 1 }, i)), _jsx(Step, { step: { status: 'target', input: planningGoal, attempts: [] }, index: currentStepIndex + 1, total: actualSteps.length, totalTools: totalTools, isAllDone: isLastStepDone })] }), _jsxs(Column, { gap: "8px", mt: "8px", children: [_jsx(Divider, { colorScheme: "light" }), _jsx(Text, { color: "light.700", children: planning?.[0]?.user_question }), !userHasAlreadyAnswered && planning?.[0]?.status === 'awaiting_approval' && _jsx(AwaitingApproval, { chatId: chatId })] }), planning?.[0]?.status === 'success' && _jsx(ViewToolsDetails, { chatId: chatId, messageId: messageId })] }) }) : null, toolsStep && toolsStep.status === 'awaiting_approval' && !userHasAlreadyAnswered &&
124
- _jsx(ToolStepsList, { toolStep: toolsStep, messageId: messageId, chatId: chatId })] }));
125
+ return (_jsxs(_Fragment, { children: [actualSteps.length > 0 ? _jsx(AnimatedHeight, { children: _jsxs("div", { className: "steps", children: [_jsxs(Row, { gap: "14px", mb: "8px", ml: "5px", children: [_jsx(Icon, { icon: "Target", size: "sm", color: "light.600" }), _jsx(Text, { children: t.executionPlan })] }), _jsxs("ul", { className: "steps-list", children: [actualSteps.map((s, i) => _jsx(Step, { step: s, index: i + 1 }, i)), _jsx(Step, { step: { status: 'target', input: planningGoal, attempts: [] }, index: currentStepIndex + 1, total: actualSteps.length, totalTools: totalTools, isAllDone: isLastStepDone })] }), _jsxs(Column, { gap: "8px", mt: "8px", children: [_jsx(Divider, { colorScheme: "light" }), _jsx(Text, { color: "light.700", children: planning?.[0]?.user_question }), isLastMessage && planning?.[0]?.status === 'awaiting_approval' && _jsx(AwaitingApproval, { chatId: chatId })] }), planning?.[0]?.status === 'success' && _jsx(ViewToolsDetails, { chatId: chatId, messageId: messageId })] }) }) : null, toolsStep && toolsStep.status === 'awaiting_approval' && _jsx(ToolStepsList, { toolStep: toolsStep, messageId: messageId, chatId: chatId })] }));
125
126
  };
126
127
  export const ViewToolsDetails = ({ chatId, messageId }) => {
127
128
  const t = useTranslate(dictionary);
@@ -1 +1 @@
1
- {"version":3,"file":"StepsList.js","sourceRoot":"","sources":["../../../src/views/Chat/StepsList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StepsList.js","sourceRoot":"","sources":["../../../src/views/Chat/StepsList.tsx"],"names":[],"mappings":"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"}
@@ -40,14 +40,17 @@ const ResourcesPanel = () => {
40
40
  const chat = widget.chatTabs.getAll().find(c => c.id === chatId);
41
41
  return chat?.getMessages().find(m => m.id === messageId)?.getValue();
42
42
  }, [messageId]);
43
- const [toolKits] = agentToolsClient.tools.useStatefulQuery({}, { enabled: !!message?.agent?.id });
44
43
  const [agent] = agentToolsClient.agent.useStatefulQuery({ agentId: message?.agent?.id || '' }, { enabled: !!message?.agent?.id });
45
- const tools = useMemo(() => message?.tools?.map(id => toolById(id, toolKits)), [messageId, toolKits]);
46
- const customTools = useMemo(() => message?.tools?.map(id => toolById(id, agent?.toolkits?.custom_toolkits)), [messageId, agent?.toolkits?.custom_toolkits]);
44
+ const toolkits = useMemo(() => [
45
+ ...agent?.toolkits?.builtin_toolkits ?? [],
46
+ ...agent?.toolkits?.custom_toolkits ?? [],
47
+ ...agent?.toolkits?.mcp_toolkits ?? [],
48
+ ], [agent]);
49
+ const tools = useMemo(() => message?.tools?.map(id => toolById(id, toolkits)), [messageId, toolkits]);
47
50
  const [agentsTools] = agentToolsClient.agentsByIds.useStatefulQuery({ searchAgentsRequest: { ids: message?.tools || [] } });
48
- const hasAgentTool = useMemo(() => message?.tools?.some(id => agentsTools?.find((agent) => agent.id === id)), [messageId, toolKits]);
51
+ const hasAgentTool = useMemo(() => message?.tools?.some(id => agentsTools?.find((agent) => agent.id === id)), [messageId]);
49
52
  const header = (image, label) => (_jsxs(Row, { children: [_jsx(ImageBox, { children: _jsx(ImageWithFallback, { src: image, fallback: _jsx(Icon, { icon: "Agent" }), "aria-label": label, title: label }) }), _jsx(Text, { style: { marginLeft: '8px' }, children: label })] }));
50
- return !!(tools?.length || customTools?.length) && (_jsxs(_Fragment, { children: [_jsx(_Fragment, { children: [...(tools || []), ...(customTools || [])].map((tool) => tool && (_jsx(StyledAccordion, { header: header(tool?.image, tool?.name), appearance: "card", maxHeight: 120, children: tool?.description }, tool.id))) }), hasAgentTool &&
53
+ return !!tools?.length && (_jsxs(_Fragment, { children: [_jsx(_Fragment, { children: tools.map((tool) => tool && (_jsx(StyledAccordion, { header: header(tool?.image, tool?.name), appearance: "card", maxHeight: 120, children: tool?.description }, tool.id))) }), hasAgentTool &&
51
54
  _jsx(Column, { children: message?.tools?.map((id) => {
52
55
  const agentTool = agentsTools?.find((agent) => agent.id === id);
53
56
  return (_jsx(StyledAccordion, { header: header(agentTool?.avatar || undefined, agentTool?.name), children: _jsx(Row, { children: _jsx(AgentDescription, { agentId: id }) }) }, agentTool?.id));
@@ -1 +1 @@
1
- {"version":3,"file":"Resources.js","sourceRoot":"","sources":["../../src/views/Resources.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Resources.js","sourceRoot":"","sources":["../../src/views/Resources.tsx"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ const ToolsPanel = () => {
38
38
  const [agent] = agentToolsClient.agent.useStatefulQuery({ agentId: message?.agent?.id || '' }, { enabled: !!message?.agent?.id });
39
39
  const tools = useMemo(() => message?.tools?.map(id => toolById(id, toolKits)), [messageId, toolKits]);
40
40
  const customTools = useMemo(() => message?.tools?.map(id => toolById(id, agent?.toolkits?.custom_toolkits)), [messageId, agent?.toolkits?.custom_toolkits]);
41
- return !!(tools?.length || customTools?.length) && (_jsx(ToolList, { children: [...(tools || []), ...(customTools || [])].map((tool) => tool && (_jsx("li", { children: _jsx(ToolBadge, { name: tool.name || tool.id, image: tool.image ?? '', description: tool.description ?? '' }) }, tool.id))) }));
41
+ return !!(tools?.length || customTools?.length) && (_jsx(ToolList, { children: [...(tools || []), ...(customTools || [])].map((tool) => tool && (_jsx("li", { children: _jsx(ToolBadge, { name: tool.name || tool.id || '', image: tool.image ?? '', description: tool.description ?? '' }) }, tool.id))) }));
42
42
  };
43
43
  const dictionary = {
44
44
  en: {
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../../src/views/Tools.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../../src/views/Tools.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "2.7.1",
3
+ "version": "2.8.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "2.7.1",
4
- "date": "Fri Dec 12 2025 18:51:20 GMT+0000 (Coordinated Universal Time)",
3
+ "version": "2.8.1",
4
+ "date": "Tue Dec 16 2025 14:17:35 GMT+0000 (Coordinated Universal Time)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
@@ -75,23 +75,6 @@ const updateToolStatus = (agentInfo: AgentInfo, messages: ChatEntry[]) => {
75
75
  if (update) {
76
76
  originalItem?.setValue({ ...originalItemValue as TextChatEntry })
77
77
  }
78
-
79
- //Updates message with type tool which contains the actually tool steps
80
- //We only want to show tools banner when they are awaiting_approval, by removing the step
81
- // we avoid the entire bot message to be visible
82
- const toolMessageId = planningToolDictionaryHelper.getMessageIdToolStepFromToolExecutionId(executionId)
83
- const toolOriginalItem = messages.find((message) => `${message.id}` === toolMessageId)
84
- const toolOriginalItemValue = toolOriginalItem?.getValue()
85
- const toolStep = toolOriginalItemValue?.steps?.find(step =>
86
- step.type === 'tool' && step.attempts?.[0]?.tools?.[0]?.executionId === executionId)
87
- update = false
88
- if (toolOriginalItemValue && toolStep && toolStep.status !== status) {
89
- toolOriginalItemValue.steps = undefined
90
- update = true
91
- }
92
- if (update) {
93
- toolOriginalItem?.setValue({ ...toolOriginalItemValue as TextChatEntry })
94
- }
95
78
  }
96
79
  }
97
80
 
@@ -1,3 +1,4 @@
1
+ import { last } from 'lodash'
1
2
  import { useContext, useEffect, useState } from 'react'
2
3
  import { ChatEntry } from '../state/ChatEntry'
3
4
  import { ChatProperties, ChatState } from '../state/ChatState'
@@ -134,3 +135,26 @@ export function useChatEntry(entry: ChatEntry) {
134
135
  useEffect(() => entry.onChange(setContent), [])
135
136
  return content
136
137
  }
138
+
139
+ /*
140
+ * An efficient hook that returns true when the current chat entry is the last entry and false when it's not.
141
+ *
142
+ * For efficiency purposes, this hook assumes that:
143
+ * - Any change to the list of messages makes it grow.
144
+ * - Once a message is no longer the last, it will never be the last entry again.
145
+ *
146
+ * @param id: the id of the entry.
147
+ **/
148
+ export function useIsLastEntryInCurrentChat(id: number) {
149
+ const chat = useCurrentChat()
150
+ const [isLast, setLast] = useState(last(chat.getMessages())?.id === id)
151
+ useEffect(() => {
152
+ if (!isLast) return
153
+ const removeListener = chat.onChangeMessages(() => {
154
+ setLast(false)
155
+ removeListener()
156
+ })
157
+ return removeListener
158
+ }, [chat])
159
+ return isLast
160
+ }
@@ -1,21 +1,32 @@
1
- import { BuiltinToolResponse } from '@stack-spot/portal-network/api/agent'
2
- import { keyBy } from 'lodash'
3
1
 
4
- export type ToolWithImage = BuiltinToolResponse & { id: string, image?: string }
2
+ export type ToolWithImage = { id?: string, image?: string, name: string, description?: string }
5
3
 
4
+ interface Toolkit {
5
+ id?: string | null,
6
+ tools?: { id?: string, name?: string, description?: string, function?: { name: string, description?: string } }[] | null,
7
+ image_url?: string | null,
8
+ avatar?: string | null,
9
+ }
10
+
11
+ function findToolById(id: string, toolkits: Toolkit[]) {
12
+ for (const tk of toolkits ?? []) {
13
+ for (const t of tk.tools ?? []) {
14
+ if (t.id === id) return { tool: t, toolkit: tk }
15
+ }
16
+ }
17
+ }
6
18
 
7
- export function toolById(
8
- id: string,
9
- toolkits: { tools?: { id: string, name: string }[], image_url?: string | null, avatar?: string | null }[] | undefined,
10
- ): ToolWithImage | undefined {
11
- const tools = toolkits
12
- ?.map((toolkit) =>
13
- toolkit.tools?.map((tool) => ({
14
- ...tool,
15
- id: tool.id!,
16
- image: toolkit.image_url || toolkit.avatar || undefined,
17
- })),
18
- )
19
- .flat()
20
- return keyBy(tools, 'id')[id]
19
+ export function toolById(id: string, toolkits: Toolkit[] | undefined): ToolWithImage {
20
+ // mcp tools are identified by "{toolkitId}/{functionName}"
21
+ const mcp = id.match(/(\w+)\/(.+)/)
22
+ if (mcp) {
23
+ const [, toolkitId, toolName] = mcp
24
+ const toolkit = toolkits?.find(tk => tk.id === toolkitId)
25
+ const tool = toolkit?.tools?.find(t => t.name === toolName)
26
+ return { id, image: toolkit?.avatar ?? undefined, name: toolName, description: tool?.function?.description }
27
+ }
28
+ const { tool, toolkit } = findToolById(id, toolkits ?? []) ?? {}
29
+ return (tool && toolkit)
30
+ ? { id, image: toolkit.avatar ?? toolkit.image_url ?? undefined, name: tool.name || id, description: tool?.description }
31
+ : { id, name: id }
21
32
  }
@@ -1,15 +1,13 @@
1
1
  import { Icon } from '@stack-spot/citric-icons'
2
- import { Badge, Card, IconBox, ImageBox, ImageWithFallback, Skeleton, Text } from '@stack-spot/citric-react'
2
+ import { AsyncContent, Badge, Card, IconBox, ImageBox, ImageWithFallback, Text } from '@stack-spot/citric-react'
3
3
  import { agentToolsClient } from '@stack-spot/portal-network'
4
4
  import { useMemo } from 'react'
5
- import { toolById } from '../../utils/tools'
6
5
  import { useAgentsDictionary } from './dictionary'
7
6
  import { AgentDescriptionBox } from './styled'
8
7
 
9
8
  export const AgentDescription = ({ agentId }: { agentId?: string }) => {
10
9
  const t = useAgentsDictionary()
11
- const [agent, , , { isLoading }] = agentToolsClient.agent.useStatefulQuery({ agentId: agentId! }, { enabled: !!agentId })
12
- const [toolKits, , , { isLoading: isLoadingToolKit }] = agentToolsClient.tools.useStatefulQuery({})
10
+ const [agent,, error, { isLoading }] = agentToolsClient.agent.useStatefulQuery({ agentId: agentId! }, { enabled: !!agentId })
13
11
  const numberOfKnowledgeSources = agent?.knowledge_sources_config?.knowledge_sources.length ?? 0
14
12
 
15
13
  const knowledgeSources = useMemo(
@@ -23,13 +21,6 @@ export const AgentDescription = ({ agentId }: { agentId?: string }) => {
23
21
  )),
24
22
  [agent],
25
23
  )
26
- const skeleton = useMemo(() => {
27
- const loadingKS: React.ReactElement[] = []
28
- for (let i = 0; i < numberOfKnowledgeSources; i++) {
29
- loadingKS.push(<li key={i}><Badge colorPalette="teal" appearance="square"><Skeleton className="ks-skeleton" /></Badge></li>)
30
- }
31
- return loadingKS
32
- }, [numberOfKnowledgeSources])
33
24
 
34
25
  const { tools, multiAgents } = useMemo(() => {
35
26
  const tools: React.ReactElement[] = []
@@ -39,12 +30,11 @@ export const AgentDescription = ({ agentId }: { agentId?: string }) => {
39
30
  for (const toolkit of builtInTools) {
40
31
  for (const tool of toolkit.tools ?? []) {
41
32
  if (toolkit.id == 'UTILITIES'){
42
- const toolWithImage = toolById(tool.id, toolKits)
43
33
  tools.push(
44
34
  <li key={tool.id}>
45
35
  <Card gap="10px" direction="row" flex={1} size="xxs" bgLevel={500}>
46
- <ImageBox><ImageWithFallback src={toolWithImage?.image} fallback={<Icon icon="Cog" />} /></ImageBox>
47
- <Text color="light.contrastText">{toolWithImage?.name || toolWithImage?.id || 'unknown'}</Text>
36
+ <ImageBox><ImageWithFallback src={toolkit.image_url} fallback={<Icon icon="Cog" />} /></ImageBox>
37
+ <Text color="light.contrastText">{tool?.name || tool?.id || 'unknown'}</Text>
48
38
  </Card>
49
39
  </li>,
50
40
  )
@@ -76,28 +66,42 @@ export const AgentDescription = ({ agentId }: { agentId?: string }) => {
76
66
  return { tools, multiAgents }
77
67
  }, [agent])
78
68
 
69
+ const mcpToolkits = useMemo(() => agent?.toolkits?.mcp_toolkits?.map(t => (
70
+ <li key={`mcp-${t.id}`}>
71
+ <Card gap="10px" direction="row" flex={1} size="xxs" bgLevel={500}>
72
+ <ImageBox><ImageWithFallback src={t.avatar ?? undefined} fallback={<Icon icon="Cog" />} /></ImageBox>
73
+ <Text color="light.contrastText">{t.name}</Text>
74
+ </Card>
75
+ </li>
76
+ )), [agent?.toolkits?.mcp_toolkits])
77
+
79
78
  return (
80
- <AgentDescriptionBox>
81
- {agent?.description && <section>
82
- <Text appearance="microtext1" className="title">{t.description}</Text>
83
- <Text>{agent?.description}</Text>
84
- </section>}
85
- {(!!numberOfKnowledgeSources || !!knowledgeSources?.length) && <section>
86
- <Text appearance="microtext1" className="title">Knowledge sources</Text>
87
- <ul>{isLoading || isLoadingToolKit ? skeleton : knowledgeSources}</ul>
88
- </section>}
89
- {!!tools?.length && <section>
90
- <Text appearance="microtext1" className="title">{t.tools}</Text>
91
- <ul>{tools}</ul>
92
- </section>}
93
- {!!multiAgents?.length && <section>
94
- <Text appearance="microtext1" className="title">{t.multiAgent}</Text>
95
- <ul>{multiAgents}</ul>
96
- </section>}
97
- {agent?.model_name && <section>
98
- <Text appearance="microtext1" className="title">LLM</Text>
99
- <Badge colorPalette="orange" appearance="square">{agent?.model_name}</Badge>
100
- </section>}
101
- </AgentDescriptionBox>
79
+ <AsyncContent loading={isLoading} error={error}>
80
+ <AgentDescriptionBox>
81
+ {agent?.description && <section>
82
+ <Text appearance="microtext1" className="title">{t.description}</Text>
83
+ <Text>{agent?.description}</Text>
84
+ </section>}
85
+ {(!!numberOfKnowledgeSources || !!knowledgeSources?.length) && <section>
86
+ <Text appearance="microtext1" className="title">Knowledge sources</Text>
87
+ <ul>{knowledgeSources}</ul>
88
+ </section>}
89
+ {!!tools?.length && <section>
90
+ <Text appearance="microtext1" className="title">{t.tools}</Text>
91
+ <ul>
92
+ {tools}
93
+ {mcpToolkits}
94
+ </ul>
95
+ </section>}
96
+ {!!multiAgents?.length && <section>
97
+ <Text appearance="microtext1" className="title">{t.multiAgent}</Text>
98
+ <ul>{multiAgents}</ul>
99
+ </section>}
100
+ {agent?.model_name && <section>
101
+ <Text appearance="microtext1" className="title">LLM</Text>
102
+ <Badge colorPalette="orange" appearance="square">{agent?.model_name}</Badge>
103
+ </section>}
104
+ </AgentDescriptionBox>
105
+ </AsyncContent>
102
106
  )
103
107
  }
@@ -1,5 +1,5 @@
1
1
  import { Icon } from '@stack-spot/citric-icons'
2
- import { Button } from '@stack-spot/citric-react'
2
+ import { Button, ImageWithFallback } from '@stack-spot/citric-react'
3
3
  import { Placeholder } from '@stack-spot/portal-components/Placeholder'
4
4
  import { AgentResponseWithBuiltIn, agentToolsClient, AgentVisibilityLevel, workspaceAiClient } from '@stack-spot/portal-network'
5
5
  import { WorkspaceResponse } from '@stack-spot/portal-network/api/workspace-ai'
@@ -96,7 +96,8 @@ export const AgentsTab = ({ visibility, workspaceId, agent, showSubmitButton = t
96
96
  isLoading={isPending}
97
97
  data={ag => ({
98
98
  idOrSlug: ag.id,
99
- image: ag.avatar ? <img src={ag.avatar} /> : <Icon icon="Agent" />,
99
+ // below, "key" is important. I don't know why exactly, but sometimes the avatar doesn't update if we don't do this.
100
+ image: <ImageWithFallback key={ag.id} src={ag.avatar ?? undefined} fallback={<Icon icon="Agent" />} />,
100
101
  description: <AgentDescription agentId={ag.id} />,
101
102
  name: ag.name,
102
103
  listFavorites,
@@ -9,7 +9,7 @@ import { PhoneInput } from 'react-international-phone'
9
9
  import 'react-international-phone/style.css'
10
10
  import { FileDescription } from '../../components/FileDescription'
11
11
  import { Markdown } from '../../components/Markdown'
12
- import { useChatEntry, useChatMessages, useCurrentChat, useCurrentChatState, useWidget } from '../../context/hooks'
12
+ import { useChatEntry, useCurrentChat, useCurrentChatState, useWidget } from '../../context/hooks'
13
13
  import { useMidnightUpdateView } from '../../hooks/midnight-update-view'
14
14
  import { ChatEntry, SerializableAction, TextChatEntry } from '../../state/ChatEntry'
15
15
  import { useDateFormatter } from '../../utils/date'
@@ -213,26 +213,19 @@ export const ChatMessage = ({ message, isLast, beforeMessage, afterMessage, cust
213
213
  const widget = useWidget()
214
214
  const chat = useCurrentChat()
215
215
  const agentId = entry.agent?.id ?? ''
216
- const [toolKits] = agentToolsClient.tools.useStatefulQuery({}, { enabled: !!agentId })
216
+ // enabled: we don't want to make any request if there is no agent
217
+ const [agent] = agentToolsClient.agent.useStatefulQuery({ agentId }, { enabled: !!agentId })
218
+ const toolkits = useMemo(() => [
219
+ ...agent?.toolkits?.builtin_toolkits ?? [],
220
+ ...agent?.toolkits?.custom_toolkits ?? [],
221
+ ...agent?.toolkits?.mcp_toolkits ?? [],
222
+ ], [agent])
217
223
  const [agentsTools] = agentToolsClient.agentsByIds.useStatefulQuery(
218
- { searchAgentsRequest: { ids: entry.tools || [''] } }, { enabled: !!entry.tools })
224
+ { searchAgentsRequest: { ids: entry.tools || [''] } }, { enabled: !!entry.tools?.length })
219
225
  const [copied, setCopied] = useState(false)
220
226
  const [showUserButtonCopy, setShowUserButtonCopy] = useState(false)
221
227
  const isPlanning = useCurrentChatState('isPlaning') ?? false
222
228
 
223
- // when we have a steps but we are not showing any content of the step
224
- // (because it is a tool and the user has already answered the question)
225
- // we do not want to show an avatar with empty content, so we hide the entire message
226
- const toolsStep = entry.steps?.find(s => s.type === 'tool')
227
- const messages = useChatMessages(chat.id)
228
- const userHasAlreadyAnswered = useMemo(() => {
229
- const messageIndex = messages.findIndex((messageItem) => messageItem.id === message.id)
230
- if (messages.length - 1 === messageIndex) return false
231
- const nextMessage = messages[messageIndex + 1].getValue()
232
- return nextMessage.agentType === 'user'
233
- }, [messages, messages.length])
234
- const isMessageHidden = toolsStep && userHasAlreadyAnswered
235
-
236
229
  useChatScrollToBottomEffect(ref, [entry])
237
230
  useMidnightUpdateView()
238
231
 
@@ -357,8 +350,7 @@ export const ChatMessage = ({ message, isLast, beforeMessage, afterMessage, cust
357
350
  widget.set('panel', 'resources')
358
351
  }
359
352
 
360
- const shouldRender = (entry.content || entry.error || (entry.done && !!entry.steps?.length) || !!entry.upload?.length)
361
- && (!isMessageHidden || !toolsStep || isPlanning)
353
+ const shouldRender = entry.content || entry.error || (entry.done && !!entry.steps?.length) || !!entry.upload?.length
362
354
 
363
355
  return shouldRender && (
364
356
  <li key={entry.messageId} className={entry.agentType} ref={ref}>
@@ -374,8 +366,7 @@ export const ChatMessage = ({ message, isLast, beforeMessage, afterMessage, cust
374
366
  {entry.badges.map((b, index) => <Badge key={index} colorPalette={b.color ?? 'cyan'} appearance="square">{b.label}</Badge>)}
375
367
  </div>}
376
368
 
377
- {!!entry.steps?.length && <StepsList steps={entry.steps} chatId={chat.id} messageId={message.id}
378
- userHasAlreadyAnswered={userHasAlreadyAnswered} />}
369
+ {!!entry.steps?.length && <StepsList steps={entry.steps} chatId={chat.id} messageId={message.id} />}
379
370
 
380
371
  {renderContent()}
381
372
 
@@ -411,13 +402,14 @@ export const ChatMessage = ({ message, isLast, beforeMessage, afterMessage, cust
411
402
  </ImageBox>
412
403
  ))}
413
404
  {entry?.tools?.map((id) => {
405
+ // In the multi-agents feature, an agent is returned as a tool, but we don't want to show agents here.
414
406
  if (agentsTools?.some((agent) => agent.id === id)) return null
415
- const tool = toolById(id, toolKits)
407
+ const tool = toolById(id, toolkits)
416
408
  return (
417
409
  <ImageBox key={id} className="agent-info-avatar-resource">
418
410
  <ImageWithFallback
419
411
  src={tool?.image}
420
- fallback={<Icon icon="Cog" />}
412
+ fallback={<Icon icon="Cog" title={tool?.name} aria-label={tool?.name} />}
421
413
  alt={tool?.name}
422
414
  aria-label={tool?.name}
423
415
  title={tool?.name}
@@ -7,7 +7,7 @@ import { findLast, findLastIndex } from 'lodash'
7
7
  import React, { useEffect, useMemo } from 'react'
8
8
  import styled from 'styled-components'
9
9
  import { Markdown } from '../../components/Markdown'
10
- import { useChat, useChatMessages, useCurrentChat, useCurrentChatMessages, useWidget } from '../../context/hooks'
10
+ import { useChat, useChatMessages, useCurrentChat, useCurrentChatMessages, useIsLastEntryInCurrentChat, useWidget } from '../../context/hooks'
11
11
  import { ChatEntry } from '../../state/ChatEntry'
12
12
  import { planningToolDictionaryHelper } from '../../utils/planning-tool'
13
13
  import { updateToolStep } from '../../utils/update-tool-step'
@@ -17,7 +17,6 @@ interface Props {
17
17
  steps: ChatStep[],
18
18
  messageId: number,
19
19
  chatId: string,
20
- userHasAlreadyAnswered?: boolean,
21
20
  }
22
21
 
23
22
  interface StepChatStepWithTarget extends Omit<StepChatStep, 'status' | 'id' | 'type'> {
@@ -174,10 +173,11 @@ const AwaitingApproval = ({ customApproveText, chatId }: { chatId: string, custo
174
173
  </>
175
174
  }
176
175
 
177
- export const ToolStepsList = ({ toolStep, messageId, chatId }: { toolStep: ToolChatStep, messageId: number, chatId: string }) => {
176
+ const ToolStepsList = ({ toolStep, messageId, chatId }: { toolStep: ToolChatStep, messageId: number, chatId: string }) => {
178
177
  const t = useTranslate(dictionary)
179
178
  const chat = useCurrentChat()
180
179
  const messages = useCurrentChatMessages()
180
+ const isLastMessage = useIsLastEntryInCurrentChat(messageId)
181
181
  const inputParsed = `\`\`\`json
182
182
  ${JSON.stringify(toolStep?.input, null, 2)}
183
183
  \`\`\``
@@ -222,15 +222,16 @@ export const ToolStepsList = ({ toolStep, messageId, chatId }: { toolStep: ToolC
222
222
  </Markdown>
223
223
  </Accordion>
224
224
 
225
- <AwaitingApproval customApproveText={t.approveTool} chatId={chatId} />
225
+ {isLastMessage && <AwaitingApproval customApproveText={t.approveTool} chatId={chatId} />}
226
226
  </Card>
227
227
  </div>
228
228
  </AnimatedHeight> : null}
229
229
  </>
230
230
  }
231
231
 
232
- export const StepsList = ({ steps, messageId, chatId, userHasAlreadyAnswered }: Props) => {
232
+ export const StepsList = ({ steps, messageId, chatId }: Props) => {
233
233
  const t = useTranslate(dictionary)
234
+ const isLastMessage = useIsLastEntryInCurrentChat(messageId)
234
235
 
235
236
  const filteredSteps = steps.filter(s => s.type === 'step')
236
237
  const actualSteps = useMemo(() => filteredSteps.filter((item) => {
@@ -302,7 +303,7 @@ export const StepsList = ({ steps, messageId, chatId, userHasAlreadyAnswered }:
302
303
  <Column gap="8px" mt="8px">
303
304
  <Divider colorScheme="light" />
304
305
  <Text color="light.700">{planning?.[0]?.user_question}</Text>
305
- {!userHasAlreadyAnswered && planning?.[0]?.status === 'awaiting_approval' && <AwaitingApproval chatId={chatId} />}
306
+ {isLastMessage && planning?.[0]?.status === 'awaiting_approval' && <AwaitingApproval chatId={chatId} />}
306
307
  </Column>
307
308
 
308
309
  {planning?.[0]?.status === 'success' && <ViewToolsDetails chatId={chatId} messageId={messageId}/>}
@@ -310,8 +311,7 @@ export const StepsList = ({ steps, messageId, chatId, userHasAlreadyAnswered }:
310
311
  </div>
311
312
  </AnimatedHeight> : null}
312
313
 
313
- {toolsStep && toolsStep.status === 'awaiting_approval' && !userHasAlreadyAnswered &&
314
- <ToolStepsList toolStep={toolsStep} messageId={messageId} chatId={chatId} />}
314
+ {toolsStep && toolsStep.status === 'awaiting_approval' && <ToolStepsList toolStep={toolsStep} messageId={messageId} chatId={chatId} />}
315
315
  </>
316
316
  )
317
317
  }