@stack-spot/ai-chat-widget 2.1.0-beta.1 → 2.1.1-beta.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.
- package/CHANGELOG.md +17 -72
- package/dist/app-metadata.json +3 -3
- package/dist/chat-interceptors/send-message.d.ts.map +1 -1
- package/dist/chat-interceptors/send-message.js +36 -10
- package/dist/chat-interceptors/send-message.js.map +1 -1
- package/dist/utils/planning-tool.d.ts +3 -0
- package/dist/utils/planning-tool.d.ts.map +1 -1
- package/dist/utils/planning-tool.js +7 -0
- package/dist/utils/planning-tool.js.map +1 -1
- package/dist/views/Chat/ChatMessage.d.ts +1 -1
- package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
- package/dist/views/Chat/ChatMessage.js +20 -6
- package/dist/views/Chat/ChatMessage.js.map +1 -1
- package/dist/views/Chat/StepsList.d.ts +7 -2
- package/dist/views/Chat/StepsList.d.ts.map +1 -1
- package/dist/views/Chat/StepsList.js +53 -20
- package/dist/views/Chat/StepsList.js.map +1 -1
- package/dist/views/Chat/styled.d.ts.map +1 -1
- package/dist/views/Chat/styled.js +4 -3
- package/dist/views/Chat/styled.js.map +1 -1
- package/package.json +2 -2
- package/src/app-metadata.json +3 -3
- package/src/chat-interceptors/send-message.ts +36 -12
- package/src/utils/planning-tool.ts +9 -0
- package/src/views/Chat/ChatMessage.tsx +21 -5
- package/src/views/Chat/StepsList.tsx +98 -56
- package/src/views/Chat/styled.ts +4 -3
|
@@ -3,11 +3,11 @@ import { Accordion, Badge, Button, Card, Column, Divider, Icon, IconBox, ImageWi
|
|
|
3
3
|
import { AnimatedHeight } from '@stack-spot/portal-components/AnimatedHeight';
|
|
4
4
|
import { theme } from '@stack-spot/portal-theme';
|
|
5
5
|
import { useTranslate } from '@stack-spot/portal-translate';
|
|
6
|
-
import { findLastIndex } from 'lodash';
|
|
7
|
-
import { useMemo } from 'react';
|
|
6
|
+
import { findLast, findLastIndex } from 'lodash';
|
|
7
|
+
import { useEffect, useMemo } from 'react';
|
|
8
8
|
import styled from 'styled-components';
|
|
9
9
|
import { Markdown } from '../../components/Markdown.js';
|
|
10
|
-
import { useCurrentChat, useCurrentChatMessages, useWidget } from '../../context/hooks.js';
|
|
10
|
+
import { useChat, useChatMessages, useCurrentChat, useCurrentChatMessages, 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';
|
|
@@ -37,23 +37,24 @@ const StyledCard = styled(Card) `
|
|
|
37
37
|
const Step = ({ step, index, onClick, total, totalTools, isAllDone }) => {
|
|
38
38
|
const t = useTranslate(dictionary);
|
|
39
39
|
const status = getStatusIcon(step.status, isAllDone);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
const hasTools = step.attempts?.[0]?.tools && step.attempts?.[0]?.tools?.length > 0;
|
|
41
|
+
return (_jsx("li", { tabIndex: onClick ? 0 : undefined, onClick: onClick, role: onClick ? 'button' : 'listitem', children: _jsxs(Row, { gap: "4px", alignItems: "center", children: [_jsx("div", { className: "step-status-icon", children: status }), _jsx(StyledCard, { p: "8px", w: "80%", children: _jsx(Accordion, { header: expand => _jsx(StepAccordionHeader, { step: step, index: index, expand: expand }), children: _jsx(Column, { pt: "12px", children: total ?
|
|
42
|
+
_jsxs(Row, { gap: "40px", children: [_jsxs(Row, { gap: "4px", children: [_jsx(Icon, { icon: "Hashtag", size: "sm", color: "light.700" }), _jsx(Text, { color: "light.700", children: t.totalSteps }), total] }), _jsxs(Row, { gap: "4px", children: [_jsx(Icon, { icon: "BorderRadius", size: "sm", color: "light.700" }), _jsx(Text, { color: "light.700", children: t.totalTools }), totalTools ?? 0] })] })
|
|
43
|
+
: _jsxs(_Fragment, { children: [_jsxs(Row, { pb: "8px", children: [_jsx(Icon, { icon: "Target", size: "sm", color: "light.700" }), _jsxs(Text, { color: "light.700", tag: "span", style: { margin: '0 4px' }, children: [t.stepGoal, ":"] }), _jsx(Text, { tag: "span", children: step.input })] }), hasTools ? _jsxs(_Fragment, { children: [_jsxs(Row, { gap: "4px", children: [_jsx(Icon, { icon: "BorderRadius", size: "sm", color: "light.700" }), _jsxs(Text, { color: "light.700", children: [t.toolsToBeExecuted, ":"] })] }), _jsx("ul", { className: "tools-list", children: step.attempts?.[0]?.tools?.map((tool, index) => (_jsx("li", { children: _jsxs(Text, { children: [tool.name, ": ", tool.goal] }) }, `${tool.id}-${index}`))) })] }) : _jsxs(Row, { gap: "4px", children: [_jsx(Icon, { icon: "BorderRadius", size: "sm", color: "light.700" }), _jsx(Text, { color: "light.700", children: t.noToolToBeUsed })] })] }) }) }) })] }) }));
|
|
43
44
|
};
|
|
44
45
|
export const StepsPlaceholder = () => {
|
|
45
46
|
const t = useTranslate(dictionary);
|
|
46
47
|
return _jsxs(Card, { gap: "8px", children: [_jsxs(Row, { gap: "8px", children: [_jsx(ProgressCircular, { colorScheme: "inverse", size: "xs" }), _jsx(Text, { color: "light.700", children: t.generatingPlan })] }), _jsx(Text, { color: "light.700", children: t.analyzingRequirements }), _jsxs(Row, { gap: "12px", children: [_jsx(Skeleton, { height: "31px", width: "148px", bgLevel: 600 }), _jsx(Skeleton, { height: "31px", width: "148px", bgLevel: 600 }), _jsx(Skeleton, { height: "31px", width: "148px", bgLevel: 600 }), _jsx(Skeleton, { height: "31px", width: "148px", bgLevel: 600 })] })] });
|
|
47
48
|
};
|
|
48
|
-
const AwaitingApproval = ({ customApproveText }) => {
|
|
49
|
+
const AwaitingApproval = ({ customApproveText, chatId }) => {
|
|
49
50
|
const t = useTranslate(dictionary);
|
|
50
|
-
const chat =
|
|
51
|
+
const chat = useChat(chatId);
|
|
51
52
|
const onAnswer = (response) => {
|
|
52
53
|
chat.pushMessage(ChatEntry.createUserEntry('', false, undefined, undefined, response));
|
|
53
54
|
};
|
|
54
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] }) })] }) });
|
|
55
56
|
};
|
|
56
|
-
export const ToolStepsList = ({ toolStep, messageId }) => {
|
|
57
|
+
export const ToolStepsList = ({ toolStep, messageId, chatId }) => {
|
|
57
58
|
const t = useTranslate(dictionary);
|
|
58
59
|
const chat = useCurrentChat();
|
|
59
60
|
const messages = useCurrentChatMessages();
|
|
@@ -65,7 +66,7 @@ export const ToolStepsList = ({ toolStep, messageId }) => {
|
|
|
65
66
|
return undefined;
|
|
66
67
|
return toolStep.attempts?.[0].tools?.[0];
|
|
67
68
|
}, [toolStep]);
|
|
68
|
-
|
|
69
|
+
useEffect(() => {
|
|
69
70
|
if (!toolStep)
|
|
70
71
|
return undefined;
|
|
71
72
|
const executionId = toolStep.attempts?.[0].tools?.[0].executionId;
|
|
@@ -73,13 +74,27 @@ export const ToolStepsList = ({ toolStep, messageId }) => {
|
|
|
73
74
|
return;
|
|
74
75
|
updateToolStep(messages, executionId, toolStep.status);
|
|
75
76
|
}, [messages, toolStep, toolStep.status]);
|
|
76
|
-
return _jsx(_Fragment, { children: toolStep && tool ? _jsx(AnimatedHeight, { children: _jsxs("div", { className: "steps", children: [_jsxs(Badge, { colorPalette: "yellow", appearance: "square", 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 })] })] }) }) : null });
|
|
77
|
+
return _jsx(_Fragment, { children: toolStep && tool ? _jsx(AnimatedHeight, { children: _jsxs("div", { className: "steps", children: [_jsxs(Badge, { colorPalette: "yellow", appearance: "square", 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 });
|
|
77
78
|
};
|
|
78
|
-
export const StepsList = ({ steps, chatId,
|
|
79
|
+
export const StepsList = ({ steps, messageId, chatId, userHasAlreadyAnswered }) => {
|
|
79
80
|
const t = useTranslate(dictionary);
|
|
80
|
-
const
|
|
81
|
+
const filteredSteps = steps.filter(s => s.type === 'step');
|
|
82
|
+
const actualSteps = useMemo(() => filteredSteps.filter((item) => {
|
|
83
|
+
const messageIdForStep = planningToolDictionaryHelper.getMessageIdFromStepId(item.id);
|
|
84
|
+
if (!messageIdForStep) {
|
|
85
|
+
planningToolDictionaryHelper.setMessageIdForStepId(messageId, item.id);
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
else if (messageIdForStep === messageId) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
// If a step is from a planning and it is already inserted in the planningToolDictionaryHelper it means the step is already in a
|
|
92
|
+
// previous message and we do not want to show it again (for instance, when required a approval in the planning, we will have
|
|
93
|
+
// two messages with the same step id one for the planning awaiting and one for the planning end, so we want to show only one)
|
|
94
|
+
return false;
|
|
95
|
+
}), [filteredSteps]);
|
|
81
96
|
const planning = steps.filter(s => s.type === 'planning');
|
|
82
|
-
|
|
97
|
+
useEffect(() => {
|
|
83
98
|
actualSteps.map((item) => {
|
|
84
99
|
const executionId = item.attempts[0]?.tools?.[0].executionId;
|
|
85
100
|
if (executionId) {
|
|
@@ -87,14 +102,14 @@ export const StepsList = ({ steps, chatId, messageId }) => {
|
|
|
87
102
|
}
|
|
88
103
|
});
|
|
89
104
|
}, [actualSteps, messageId]);
|
|
90
|
-
const toolsStep = steps
|
|
91
|
-
|
|
105
|
+
const toolsStep = findLast(steps, s => s.type === 'tool');
|
|
106
|
+
useEffect(() => {
|
|
92
107
|
const executionId = toolsStep?.attempts?.[0]?.tools?.[0]?.executionId;
|
|
93
108
|
if (executionId) {
|
|
94
109
|
planningToolDictionaryHelper.setMessageIdToolStepToolExecutionId(`${messageId}`, executionId);
|
|
95
110
|
}
|
|
96
111
|
}, [toolsStep, messageId]);
|
|
97
|
-
const planningGoal =
|
|
112
|
+
const planningGoal = planning?.[0]?.goal;
|
|
98
113
|
const isLastStepDone = actualSteps[actualSteps.length - 1]?.status !== 'running' &&
|
|
99
114
|
actualSteps[actualSteps.length - 1]?.status !== 'pending';
|
|
100
115
|
const totalTools = useMemo(() => actualSteps?.reduce((sum, step) => {
|
|
@@ -105,12 +120,28 @@ export const StepsList = ({ steps, chatId, messageId }) => {
|
|
|
105
120
|
let currentStepIndex = findLastIndex(actualSteps, s => s.status === 'running' || s.status === 'success');
|
|
106
121
|
if (currentStepIndex === -1)
|
|
107
122
|
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 })] })] }) }) : null, toolsStep && toolsStep.status === 'awaiting_approval' && !userHasAlreadyAnswered &&
|
|
124
|
+
_jsx(ToolStepsList, { toolStep: toolsStep, messageId: messageId, chatId: chatId })] }));
|
|
125
|
+
};
|
|
126
|
+
export const ViewToolsDetails = ({ chatId }) => {
|
|
127
|
+
const t = useTranslate(dictionary);
|
|
128
|
+
const messages = useChatMessages(chatId);
|
|
129
|
+
const messageId = useMemo(() => {
|
|
130
|
+
const messageWithPlanning = findLast(messages, (message) => {
|
|
131
|
+
const steps = message.getValue().steps;
|
|
132
|
+
const planningStep = steps?.find((step) => step.type === 'planning' && step.status === 'success');
|
|
133
|
+
return planningStep ? true : false;
|
|
134
|
+
});
|
|
135
|
+
return messageWithPlanning?.id;
|
|
136
|
+
}, [messages]);
|
|
108
137
|
const widget = useWidget();
|
|
109
138
|
function openToolsPanel() {
|
|
110
|
-
|
|
111
|
-
|
|
139
|
+
if (messageId) {
|
|
140
|
+
widget.set('currentMessageInPanel', { chatId, messageId });
|
|
141
|
+
widget.set('panel', 'steps');
|
|
142
|
+
}
|
|
112
143
|
}
|
|
113
|
-
return (
|
|
144
|
+
return _jsx(_Fragment, { children: _jsx("div", { className: "step-actions", children: _jsxs(Button, { colorScheme: "light", size: "sm", className: "icon-button details", onClick: openToolsPanel, children: [_jsx(Icon, { group: "fill", icon: "Play", size: "xs" }), t.detailed] }) }) });
|
|
114
145
|
};
|
|
115
146
|
const dictionary = {
|
|
116
147
|
en: {
|
|
@@ -131,6 +162,7 @@ const dictionary = {
|
|
|
131
162
|
viewDetails: 'View details',
|
|
132
163
|
approveTool: 'Approve execution',
|
|
133
164
|
pendingReview: 'Pending review',
|
|
165
|
+
noToolToBeUsed: 'No tool will be needed',
|
|
134
166
|
},
|
|
135
167
|
pt: {
|
|
136
168
|
step: 'Passo',
|
|
@@ -150,6 +182,7 @@ const dictionary = {
|
|
|
150
182
|
viewDetails: 'Ver detalhes',
|
|
151
183
|
approveTool: 'Aprovar execução',
|
|
152
184
|
pendingReview: 'Revisão pendente',
|
|
185
|
+
noToolToBeUsed: 'Nenhuma tool será necessária',
|
|
153
186
|
},
|
|
154
187
|
};
|
|
155
188
|
//# sourceMappingURL=StepsList.js.map
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/views/Chat/styled.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAE7E,eAAO,MAAM,QAAQ,EAAE,oBAAoB,CACzC,KAAK,EACL,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/views/Chat/styled.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAE7E,eAAO,MAAM,QAAQ,EAAE,oBAAoB,CACzC,KAAK,EACL,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAqTvF,CAAA"}
|
|
@@ -286,8 +286,10 @@ export const ChatList = styled.ul `
|
|
|
286
286
|
}
|
|
287
287
|
}
|
|
288
288
|
|
|
289
|
-
|
|
290
|
-
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.step-actions {
|
|
292
|
+
margin-top: 16px;
|
|
291
293
|
display: flex;
|
|
292
294
|
gap: 6px;
|
|
293
295
|
|
|
@@ -297,7 +299,6 @@ export const ChatList = styled.ul `
|
|
|
297
299
|
align-items: center;
|
|
298
300
|
}
|
|
299
301
|
}
|
|
300
|
-
}
|
|
301
302
|
|
|
302
303
|
.markdown img {
|
|
303
304
|
max-width: 70%;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.js","sourceRoot":"","sources":["../../../src/views/Chat/styled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,MAAM,CAAC,MAAM,QAAQ,GAGjB,MAAM,CAAC,EAAE,CAAA;;;;;;;;;;;;;;YAcD,KAAK,CAAC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA2BP,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA+CjB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;8BAItB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA2BxB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;gDAUF,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAwCtE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;wBAyB5B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0D7B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY
|
|
1
|
+
{"version":3,"file":"styled.js","sourceRoot":"","sources":["../../../src/views/Chat/styled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,MAAM,CAAC,MAAM,QAAQ,GAGjB,MAAM,CAAC,EAAE,CAAA;;;;;;;;;;;;;;YAcD,KAAK,CAAC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA2BP,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA+CjB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;8BAItB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA2BxB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;gDAUF,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAwCtE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;wBAyB5B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0D7B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwD9C,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"@citric/core": "^6.4.0",
|
|
17
17
|
"@stack-spot/portal-components": "^2.26.0",
|
|
18
18
|
"@citric/icons": "^5.13.0",
|
|
19
|
-
"@stack-spot/portal-network": "0.
|
|
19
|
+
"@stack-spot/portal-network": "0.186.0-beta.1",
|
|
20
20
|
"@citric/ui": "^6.10.2",
|
|
21
21
|
"@stack-spot/portal-translate": "^2.1.0",
|
|
22
22
|
"lodash": "^4.17.0",
|
package/src/app-metadata.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "2.1.
|
|
4
|
-
"date": "
|
|
3
|
+
"version": "2.1.1-beta.1",
|
|
4
|
+
"date": "Thu Oct 16 2025 13:16:47 GMT+0000 (Coordinated Universal Time)",
|
|
5
5
|
"dependencies": [
|
|
6
6
|
{
|
|
7
7
|
"name": "@stack-spot/app-metadata",
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
"name": "@stack-spot/portal-network",
|
|
124
|
-
"version": "0.
|
|
124
|
+
"version": "0.186.0-beta.1(@stack-spot/auth@6.1.0)(@stack-spot/opa@2.5.0(@stack-spot/auth@6.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@stack-spot/portal-translate@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tanstack/react-query@5.59.16(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
"name": "@stack-spot/portal-theme",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { AgentInfo, aiClient, ChatResponseWithSteps, StackspotAPIError, StreamCanceledError } from '@stack-spot/portal-network'
|
|
1
|
+
import { AgentInfo, aiClient, ChatResponseWithSteps, ChatStep, StackspotAPIError, StreamCanceledError } from '@stack-spot/portal-network'
|
|
2
2
|
import { ChatResponse3 } from '@stack-spot/portal-network/api/ai'
|
|
3
|
+
import { findLast } from 'lodash'
|
|
3
4
|
import { ChatEntry, KnowledgeSource, TextChatEntry } from '../state/ChatEntry'
|
|
4
5
|
import { ChatState } from '../state/ChatState'
|
|
5
6
|
import { LabeledWithImage } from '../state/types'
|
|
@@ -66,7 +67,7 @@ export async function sendMessageInterceptor(entry: ChatEntry, chat: ChatState,
|
|
|
66
67
|
|
|
67
68
|
//Verify if the last planning in the messages has status awaiting_approval
|
|
68
69
|
const messages = chat.getMessages()
|
|
69
|
-
const lastPlanningAwaiting = messages
|
|
70
|
+
const lastPlanningAwaiting = findLast(messages, item => {
|
|
70
71
|
const steps = item.getValue().steps
|
|
71
72
|
if (steps) {
|
|
72
73
|
const hasPlanning = steps.find((step) => step.type === 'planning')
|
|
@@ -96,6 +97,19 @@ export async function sendMessageInterceptor(entry: ChatEntry, chat: ChatState,
|
|
|
96
97
|
originalItem?.setValue({ ...originalItemValue as TextChatEntry })
|
|
97
98
|
}
|
|
98
99
|
}
|
|
100
|
+
|
|
101
|
+
const updateStepMessage = (step: ChatStep) => {
|
|
102
|
+
if (lastPlanningAwaiting) {
|
|
103
|
+
const originalItem = messages.find((message) => message.id === lastPlanningAwaiting.id)
|
|
104
|
+
const originalItemValue = originalItem?.getValue()
|
|
105
|
+
originalItemValue?.steps?.filter((messageStep) => {
|
|
106
|
+
if (messageStep.id === step.id) {
|
|
107
|
+
messageStep = { ...step }
|
|
108
|
+
}
|
|
109
|
+
})
|
|
110
|
+
originalItem?.setValue({ ...originalItemValue as TextChatEntry })
|
|
111
|
+
}
|
|
112
|
+
}
|
|
99
113
|
|
|
100
114
|
const updateToolStatus = (agentInfo: AgentInfo) => {
|
|
101
115
|
const executionId = agentInfo.id
|
|
@@ -147,17 +161,13 @@ export async function sendMessageInterceptor(entry: ChatEntry, chat: ChatState,
|
|
|
147
161
|
knowledgeSources = genericSourcesToKnowledgeSources(value.sources)
|
|
148
162
|
}
|
|
149
163
|
|
|
150
|
-
// When there is a planning with status awaiting_approval and we receive a new one
|
|
151
|
-
// we do not not want to add it again.
|
|
152
164
|
if (lastPlanningAwaiting && value.steps) {
|
|
153
|
-
|
|
154
|
-
value.steps = value.steps?.filter(step => {
|
|
165
|
+
value.steps?.map(step => {
|
|
155
166
|
if (step.type === 'planning') {
|
|
156
167
|
updatePlanningMessage()
|
|
168
|
+
} else if (step.type === 'step') {
|
|
169
|
+
updateStepMessage(step)
|
|
157
170
|
}
|
|
158
|
-
|
|
159
|
-
return hasPlanningAwaiting ? true : (step.type !== 'planning' && step.type !== 'step' &&
|
|
160
|
-
(step.type !== 'answer' || (step.type === 'answer' && step.status === 'pending')))
|
|
161
171
|
})
|
|
162
172
|
}
|
|
163
173
|
|
|
@@ -166,7 +176,8 @@ export async function sendMessageInterceptor(entry: ChatEntry, chat: ChatState,
|
|
|
166
176
|
}
|
|
167
177
|
|
|
168
178
|
if (value.steps) {
|
|
169
|
-
const tool = value.steps
|
|
179
|
+
const tool = findLast(value.steps, (item) => item.type === 'tool')
|
|
180
|
+
|
|
170
181
|
if (tool && tool.status === 'running') {
|
|
171
182
|
const messageId = planningToolDictionaryHelper.getMessageIdPlanningStepFromToolExecutionId(tool.id)
|
|
172
183
|
const originalItem = messages.find((message) => `${message.id}` === messageId)
|
|
@@ -174,8 +185,16 @@ export async function sendMessageInterceptor(entry: ChatEntry, chat: ChatState,
|
|
|
174
185
|
let update = false
|
|
175
186
|
const step = originalItemValue?.steps?.find(step => step.type === 'step')
|
|
176
187
|
if (step && step.attempts?.[0].tools?.[0].executionId === tool.id) {
|
|
177
|
-
step.attempts
|
|
178
|
-
|
|
188
|
+
step.attempts?.map((attempt, i) => {
|
|
189
|
+
const newAttempt = tool.attempts?.[i]
|
|
190
|
+
if (!newAttempt) return
|
|
191
|
+
attempt.tools?.map((origTool, j) => {
|
|
192
|
+
const newTool = newAttempt.tools?.[j]
|
|
193
|
+
if (!newTool || origTool.executionId !== newTool.executionId) return origTool
|
|
194
|
+
update = true
|
|
195
|
+
return { ...origTool, ...newTool }
|
|
196
|
+
})
|
|
197
|
+
})
|
|
179
198
|
}
|
|
180
199
|
if (update) {
|
|
181
200
|
originalItem?.setValue({ ...originalItemValue as TextChatEntry })
|
|
@@ -189,6 +208,11 @@ export async function sendMessageInterceptor(entry: ChatEntry, chat: ChatState,
|
|
|
189
208
|
let finalValue: Partial<ChatResponse3> | undefined
|
|
190
209
|
try {
|
|
191
210
|
finalValue = await stream.getValue()
|
|
211
|
+
if (lastPlanningAwaiting) {
|
|
212
|
+
const value = lastPlanningAwaiting.getValue()
|
|
213
|
+
value.content = finalValue.answer || value.content
|
|
214
|
+
lastPlanningAwaiting.setValue(value)
|
|
215
|
+
}
|
|
192
216
|
// if the streaming feature is not enabled, we only add the chat entry once the streaming has finished
|
|
193
217
|
if (!chat.get('features').streaming) {
|
|
194
218
|
chat.pushMessage(botEntry)
|
|
@@ -2,6 +2,7 @@ class PlanningToolDictionaryHelper {
|
|
|
2
2
|
static instance: PlanningToolDictionaryHelper | undefined
|
|
3
3
|
private toolExecutionIdPlanningStep: Record<string, string> = {}
|
|
4
4
|
private toolExecutionIdToolStep: Record<string, string> = {}
|
|
5
|
+
private stepId: Record<string, number> = {}
|
|
5
6
|
|
|
6
7
|
private constructor() {
|
|
7
8
|
PlanningToolDictionaryHelper.instance = this
|
|
@@ -18,6 +19,14 @@ class PlanningToolDictionaryHelper {
|
|
|
18
19
|
setMessageIdToolStepToolExecutionId(messageId: string, toolExecutionId: string){
|
|
19
20
|
this.toolExecutionIdToolStep[toolExecutionId] = messageId
|
|
20
21
|
}
|
|
22
|
+
|
|
23
|
+
setMessageIdForStepId(messageId: number, stepId: string){
|
|
24
|
+
this.stepId[stepId] = messageId
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getMessageIdFromStepId(stepId: string){
|
|
28
|
+
return this.stepId[stepId]
|
|
29
|
+
}
|
|
21
30
|
|
|
22
31
|
getMessageIdPlanningStepFromToolExecutionId(toolExecutionId: string){
|
|
23
32
|
return this.toolExecutionIdPlanningStep[toolExecutionId]
|
|
@@ -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, useCurrentChat, useCurrentChatState, useWidget } from '../../context/hooks'
|
|
12
|
+
import { useChatEntry, useChatMessages, 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'
|
|
@@ -17,7 +17,7 @@ import { toolById } from '../../utils/tools'
|
|
|
17
17
|
import { AgentInfo } from './AgentInfo'
|
|
18
18
|
import { useChatScrollToBottomEffect } from './chat-scroll'
|
|
19
19
|
import { onCopyAll, onCopyCode, onLikeOrDislike } from './events'
|
|
20
|
-
import { StepsList, StepsPlaceholder } from './StepsList'
|
|
20
|
+
import { StepsList, StepsPlaceholder, ViewToolsDetails } from './StepsList'
|
|
21
21
|
|
|
22
22
|
export interface CustomRenderResult {
|
|
23
23
|
/**
|
|
@@ -219,7 +219,20 @@ export const ChatMessage = ({ message, isLast, beforeMessage, afterMessage, cust
|
|
|
219
219
|
const [copied, setCopied] = useState(false)
|
|
220
220
|
const [showUserButtonCopy, setShowUserButtonCopy] = useState(false)
|
|
221
221
|
const isPlanning = useCurrentChatState('isPlaning') ?? false
|
|
222
|
-
|
|
222
|
+
|
|
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
|
+
|
|
223
236
|
useChatScrollToBottomEffect(ref, [entry])
|
|
224
237
|
useMidnightUpdateView()
|
|
225
238
|
|
|
@@ -344,7 +357,8 @@ export const ChatMessage = ({ message, isLast, beforeMessage, afterMessage, cust
|
|
|
344
357
|
widget.set('panel', 'resources')
|
|
345
358
|
}
|
|
346
359
|
|
|
347
|
-
return (entry.content || entry.error || !!entry.steps?.length
|
|
360
|
+
return (entry.content || entry.error || !!entry.steps?.length ||
|
|
361
|
+
entry.upload?.length) && (!isMessageHidden || !toolsStep || isPlanning) && (
|
|
348
362
|
<li key={entry.messageId} className={entry.agentType} ref={ref}>
|
|
349
363
|
<div className="chat-message-container"
|
|
350
364
|
onMouseEnter={entry.agentType === 'user' ? () => setShowUserButtonCopy(true) : undefined}
|
|
@@ -358,7 +372,8 @@ export const ChatMessage = ({ message, isLast, beforeMessage, afterMessage, cust
|
|
|
358
372
|
{entry.badges.map((b, index) => <Badge key={index} colorPalette={b.color ?? 'cyan'} appearance="square">{b.label}</Badge>)}
|
|
359
373
|
</div>}
|
|
360
374
|
|
|
361
|
-
{!!entry.steps?.length && <StepsList steps={entry.steps} chatId={chat.id} messageId={message.id}
|
|
375
|
+
{!!entry.steps?.length && <StepsList steps={entry.steps} chatId={chat.id} messageId={message.id}
|
|
376
|
+
userHasAlreadyAnswered={userHasAlreadyAnswered} />}
|
|
362
377
|
|
|
363
378
|
{renderContent()}
|
|
364
379
|
|
|
@@ -420,6 +435,7 @@ export const ChatMessage = ({ message, isLast, beforeMessage, afterMessage, cust
|
|
|
420
435
|
</ImageBox>
|
|
421
436
|
)})}
|
|
422
437
|
</Button>
|
|
438
|
+
<ViewToolsDetails chatId={chat.id} />
|
|
423
439
|
</div>}
|
|
424
440
|
|
|
425
441
|
{shouldShowFooter && <div className="message-footer">
|