@botonic/react 0.45.0 → 0.46.0-alpha-3

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 (75) hide show
  1. package/lib/cjs/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +4 -0
  2. package/lib/cjs/components/system-debug-trace/events/ai-agent/ai-agent.js +49 -0
  3. package/lib/cjs/components/system-debug-trace/events/ai-agent/ai-agent.js.map +1 -0
  4. package/lib/cjs/components/system-debug-trace/events/ai-agent/executed-tools.d.ts +7 -0
  5. package/lib/cjs/components/system-debug-trace/events/ai-agent/executed-tools.js +21 -0
  6. package/lib/cjs/components/system-debug-trace/events/ai-agent/executed-tools.js.map +1 -0
  7. package/lib/cjs/components/system-debug-trace/events/ai-agent/index.d.ts +2 -0
  8. package/lib/cjs/components/system-debug-trace/events/ai-agent/index.js +6 -0
  9. package/lib/cjs/components/system-debug-trace/events/ai-agent/index.js.map +1 -0
  10. package/lib/cjs/components/system-debug-trace/events/ai-agent/parse-tools.d.ts +9 -0
  11. package/lib/cjs/components/system-debug-trace/events/ai-agent/parse-tools.js +28 -0
  12. package/lib/cjs/components/system-debug-trace/events/ai-agent/parse-tools.js.map +1 -0
  13. package/lib/cjs/components/system-debug-trace/events/{ai-agent.d.ts → ai-agent/types.d.ts} +4 -7
  14. package/lib/cjs/components/system-debug-trace/events/ai-agent/types.js +3 -0
  15. package/lib/cjs/components/system-debug-trace/events/ai-agent/types.js.map +1 -0
  16. package/lib/cjs/components/system-debug-trace/events/components/sources-section.js +7 -1
  17. package/lib/cjs/components/system-debug-trace/events/components/sources-section.js.map +1 -1
  18. package/lib/cjs/components/system-debug-trace/events/constants.d.ts +4 -1
  19. package/lib/cjs/components/system-debug-trace/events/constants.js +4 -1
  20. package/lib/cjs/components/system-debug-trace/events/constants.js.map +1 -1
  21. package/lib/cjs/components/system-debug-trace/styles.d.ts +1 -1
  22. package/lib/cjs/components/system-debug-trace/styles.js +3 -5
  23. package/lib/cjs/components/system-debug-trace/styles.js.map +1 -1
  24. package/lib/cjs/index-types.d.ts +2 -1
  25. package/lib/cjs/index-types.js.map +1 -1
  26. package/lib/cjs/webchat/context/index.js +3 -0
  27. package/lib/cjs/webchat/context/index.js.map +1 -1
  28. package/lib/cjs/webchat/custom-messages/rating/index.js +12 -0
  29. package/lib/cjs/webchat/custom-messages/rating/index.js.map +1 -1
  30. package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +4 -0
  31. package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.js +49 -0
  32. package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.js.map +1 -0
  33. package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.d.ts +7 -0
  34. package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.js +21 -0
  35. package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.js.map +1 -0
  36. package/lib/esm/components/system-debug-trace/events/ai-agent/index.d.ts +2 -0
  37. package/lib/esm/components/system-debug-trace/events/ai-agent/index.js +6 -0
  38. package/lib/esm/components/system-debug-trace/events/ai-agent/index.js.map +1 -0
  39. package/lib/esm/components/system-debug-trace/events/ai-agent/parse-tools.d.ts +9 -0
  40. package/lib/esm/components/system-debug-trace/events/ai-agent/parse-tools.js +28 -0
  41. package/lib/esm/components/system-debug-trace/events/ai-agent/parse-tools.js.map +1 -0
  42. package/lib/esm/components/system-debug-trace/events/{ai-agent.d.ts → ai-agent/types.d.ts} +4 -7
  43. package/lib/esm/components/system-debug-trace/events/ai-agent/types.js +3 -0
  44. package/lib/esm/components/system-debug-trace/events/ai-agent/types.js.map +1 -0
  45. package/lib/esm/components/system-debug-trace/events/components/sources-section.js +7 -1
  46. package/lib/esm/components/system-debug-trace/events/components/sources-section.js.map +1 -1
  47. package/lib/esm/components/system-debug-trace/events/constants.d.ts +4 -1
  48. package/lib/esm/components/system-debug-trace/events/constants.js +4 -1
  49. package/lib/esm/components/system-debug-trace/events/constants.js.map +1 -1
  50. package/lib/esm/components/system-debug-trace/styles.d.ts +1 -1
  51. package/lib/esm/components/system-debug-trace/styles.js +3 -5
  52. package/lib/esm/components/system-debug-trace/styles.js.map +1 -1
  53. package/lib/esm/index-types.d.ts +2 -1
  54. package/lib/esm/index-types.js.map +1 -1
  55. package/lib/esm/webchat/context/index.js +3 -0
  56. package/lib/esm/webchat/context/index.js.map +1 -1
  57. package/lib/esm/webchat/custom-messages/rating/index.js +12 -0
  58. package/lib/esm/webchat/custom-messages/rating/index.js.map +1 -1
  59. package/package.json +2 -2
  60. package/src/components/system-debug-trace/events/ai-agent/ai-agent.tsx +130 -0
  61. package/src/components/system-debug-trace/events/ai-agent/executed-tools.tsx +43 -0
  62. package/src/components/system-debug-trace/events/ai-agent/index.ts +2 -0
  63. package/src/components/system-debug-trace/events/ai-agent/parse-tools.ts +31 -0
  64. package/src/components/system-debug-trace/events/ai-agent/types.ts +23 -0
  65. package/src/components/system-debug-trace/events/components/sources-section.tsx +7 -2
  66. package/src/components/system-debug-trace/events/constants.ts +4 -1
  67. package/src/components/system-debug-trace/styles.ts +3 -4
  68. package/src/index-types.ts +2 -0
  69. package/src/webchat/context/index.tsx +3 -0
  70. package/src/webchat/custom-messages/rating/index.tsx +13 -1
  71. package/lib/cjs/components/system-debug-trace/events/ai-agent.js +0 -59
  72. package/lib/cjs/components/system-debug-trace/events/ai-agent.js.map +0 -1
  73. package/lib/esm/components/system-debug-trace/events/ai-agent.js +0 -59
  74. package/lib/esm/components/system-debug-trace/events/ai-agent.js.map +0 -1
  75. package/src/components/system-debug-trace/events/ai-agent.tsx +0 -158
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAiAgentEventConfig = exports.AiAgent = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const core_1 = require("@botonic/core");
6
- const react_1 = require("react");
7
- const context_1 = require("../../../webchat/context");
8
- const use_knowledge_base_info_1 = require("../hooks/use-knowledge-base-info");
9
- const icons_1 = require("../icons");
10
- const styles_1 = require("../styles");
11
- const components_1 = require("./components");
12
- const constants_1 = require("./constants");
13
- const AiAgent = (props) => {
14
- const { previewUtils } = (0, react_1.useContext)(context_1.WebchatContext);
15
- // Collect all sources IDs, chunk IDs and query from all tools
16
- const { allSourcesIds, allChunksIds, query } = (0, react_1.useMemo)(() => {
17
- const allSourcesIds = [];
18
- const allChunksIds = [];
19
- let query;
20
- props.tools_executed.forEach(tool => {
21
- if (tool.tool_arguments?.query &&
22
- typeof tool.tool_arguments.query === 'string') {
23
- query = tool.tool_arguments.query;
24
- }
25
- if (tool.knowledgebase_sources_ids) {
26
- allSourcesIds.push(...tool.knowledgebase_sources_ids);
27
- }
28
- if (tool.knowledgebase_chunks_ids) {
29
- allChunksIds.push(...tool.knowledgebase_chunks_ids);
30
- }
31
- });
32
- return { allSourcesIds, allChunksIds, query };
33
- }, [props.tools_executed]);
34
- const { sources: allSources, chunks: allChunks, chunksWithSources, getIconForSourceType, } = (0, use_knowledge_base_info_1.useKnowledgeBaseInfo)({
35
- sourceIds: allSourcesIds,
36
- chunkIds: allChunksIds,
37
- messageId: props.messageId,
38
- existingChunksWithSources: props.knowledge_base_chunks_with_sources,
39
- });
40
- const handleSeeChunks = () => {
41
- if (previewUtils?.onClickOpenChunks) {
42
- previewUtils.onClickOpenChunks(chunksWithSources);
43
- }
44
- };
45
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [query && ((0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.QUERY }), (0, jsx_runtime_1.jsxs)(styles_1.StyledDebugValue, { children: ["\"", query, "\""] })] })), (0, jsx_runtime_1.jsx)(components_1.SourcesSection, { sources: allSources, chunks: allChunks, getIconForSourceType: getIconForSourceType, onSeeChunks: handleSeeChunks, label: constants_1.LABELS.KNOWLEDGE_GATHERED }), props.tools_executed.length > 0 && ((0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.EXECUTED_TOOLS }), props.tools_executed.map((tool, index) => ((0, jsx_runtime_1.jsxs)(styles_1.StyledDebugItemWithIcon, { children: [(0, jsx_runtime_1.jsx)(icons_1.ScrewdriverWrenchSvg, {}), tool.tool_name] }, `${tool.tool_name}-${index}`)))] })), props.tools_executed.length === 0 && ((0, jsx_runtime_1.jsx)(styles_1.StyledDebugDetail, { children: (0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.NO_TOOLS_EXECUTED }) })), (0, jsx_runtime_1.jsx)(components_1.GuardrailList, { keyPrefix: 'input', guardrails: props.input_guardrails_triggered }), (0, jsx_runtime_1.jsx)(components_1.GuardrailList, { keyPrefix: 'output', guardrails: props.output_guardrails_triggered, "$isLastItem": !props.exit && !props.error }), props.exit && ((0, jsx_runtime_1.jsx)(styles_1.StyledDebugDetail, { children: (0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.EXIT }) })), props.error && ((0, jsx_runtime_1.jsx)(styles_1.StyledDebugDetail, { children: (0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.ERROR }) }))] }));
46
- };
47
- exports.AiAgent = AiAgent;
48
- const getAiAgentEventConfig = (data) => {
49
- const title = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["AI Agent triggered ", (0, jsx_runtime_1.jsxs)("span", { children: ["- ", data.flow_node_content_id] })] }));
50
- return {
51
- action: core_1.EventAction.AiAgent,
52
- title,
53
- component: exports.AiAgent,
54
- icon: (0, jsx_runtime_1.jsx)(icons_1.WandSvg, {}),
55
- collapsible: true,
56
- };
57
- };
58
- exports.getAiAgentEventConfig = getAiAgentEventConfig;
59
- //# sourceMappingURL=ai-agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/ai-agent.tsx"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAiAgentEventConfig = exports.AiAgent = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const core_1 = require("@botonic/core");
6
- const react_1 = require("react");
7
- const context_1 = require("../../../webchat/context");
8
- const use_knowledge_base_info_1 = require("../hooks/use-knowledge-base-info");
9
- const icons_1 = require("../icons");
10
- const styles_1 = require("../styles");
11
- const components_1 = require("./components");
12
- const constants_1 = require("./constants");
13
- const AiAgent = (props) => {
14
- const { previewUtils } = (0, react_1.useContext)(context_1.WebchatContext);
15
- // Collect all sources IDs, chunk IDs and query from all tools
16
- const { allSourcesIds, allChunksIds, query } = (0, react_1.useMemo)(() => {
17
- const allSourcesIds = [];
18
- const allChunksIds = [];
19
- let query;
20
- props.tools_executed.forEach(tool => {
21
- if (tool.tool_arguments?.query &&
22
- typeof tool.tool_arguments.query === 'string') {
23
- query = tool.tool_arguments.query;
24
- }
25
- if (tool.knowledgebase_sources_ids) {
26
- allSourcesIds.push(...tool.knowledgebase_sources_ids);
27
- }
28
- if (tool.knowledgebase_chunks_ids) {
29
- allChunksIds.push(...tool.knowledgebase_chunks_ids);
30
- }
31
- });
32
- return { allSourcesIds, allChunksIds, query };
33
- }, [props.tools_executed]);
34
- const { sources: allSources, chunks: allChunks, chunksWithSources, getIconForSourceType, } = (0, use_knowledge_base_info_1.useKnowledgeBaseInfo)({
35
- sourceIds: allSourcesIds,
36
- chunkIds: allChunksIds,
37
- messageId: props.messageId,
38
- existingChunksWithSources: props.knowledge_base_chunks_with_sources,
39
- });
40
- const handleSeeChunks = () => {
41
- if (previewUtils?.onClickOpenChunks) {
42
- previewUtils.onClickOpenChunks(chunksWithSources);
43
- }
44
- };
45
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [query && ((0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.QUERY }), (0, jsx_runtime_1.jsxs)(styles_1.StyledDebugValue, { children: ["\"", query, "\""] })] })), (0, jsx_runtime_1.jsx)(components_1.SourcesSection, { sources: allSources, chunks: allChunks, getIconForSourceType: getIconForSourceType, onSeeChunks: handleSeeChunks, label: constants_1.LABELS.KNOWLEDGE_GATHERED }), props.tools_executed.length > 0 && ((0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.EXECUTED_TOOLS }), props.tools_executed.map((tool, index) => ((0, jsx_runtime_1.jsxs)(styles_1.StyledDebugItemWithIcon, { children: [(0, jsx_runtime_1.jsx)(icons_1.ScrewdriverWrenchSvg, {}), tool.tool_name] }, `${tool.tool_name}-${index}`)))] })), props.tools_executed.length === 0 && ((0, jsx_runtime_1.jsx)(styles_1.StyledDebugDetail, { children: (0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.NO_TOOLS_EXECUTED }) })), (0, jsx_runtime_1.jsx)(components_1.GuardrailList, { keyPrefix: 'input', guardrails: props.input_guardrails_triggered }), (0, jsx_runtime_1.jsx)(components_1.GuardrailList, { keyPrefix: 'output', guardrails: props.output_guardrails_triggered, "$isLastItem": !props.exit && !props.error }), props.exit && ((0, jsx_runtime_1.jsx)(styles_1.StyledDebugDetail, { children: (0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.EXIT }) })), props.error && ((0, jsx_runtime_1.jsx)(styles_1.StyledDebugDetail, { children: (0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.ERROR }) }))] }));
46
- };
47
- exports.AiAgent = AiAgent;
48
- const getAiAgentEventConfig = (data) => {
49
- const title = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["AI Agent triggered ", (0, jsx_runtime_1.jsxs)("span", { children: ["- ", data.flow_node_content_id] })] }));
50
- return {
51
- action: core_1.EventAction.AiAgent,
52
- title,
53
- component: exports.AiAgent,
54
- icon: (0, jsx_runtime_1.jsx)(icons_1.WandSvg, {}),
55
- collapsible: true,
56
- };
57
- };
58
- exports.getAiAgentEventConfig = getAiAgentEventConfig;
59
- //# sourceMappingURL=ai-agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/ai-agent.tsx"],"names":[],"mappings":"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"}
@@ -1,158 +0,0 @@
1
- import { EventAction } from '@botonic/core'
2
- import { useContext, useMemo } from 'react'
3
-
4
- import { WebchatContext } from '../../../webchat/context'
5
- import { useKnowledgeBaseInfo } from '../hooks/use-knowledge-base-info'
6
- import { ScrewdriverWrenchSvg, WandSvg } from '../icons'
7
- import {
8
- StyledDebugDetail,
9
- StyledDebugItemWithIcon,
10
- StyledDebugLabel,
11
- StyledDebugValue,
12
- } from '../styles'
13
- import type { DebugEventConfig } from '../types'
14
- import { GuardrailList, SourcesSection } from './components'
15
- import { LABELS } from './constants'
16
- import type { ChunkIdsGroupedBySourceData } from './knowledge-bases-types'
17
-
18
- interface ToolExecuted {
19
- tool_name: string
20
- tool_arguments: Record<string, unknown>
21
- knowledgebase_sources_ids?: string[]
22
- knowledgebase_chunks_ids?: string[]
23
- }
24
-
25
- export interface AiAgentDebugEvent {
26
- action: EventAction.AiAgent
27
- flow_node_content_id: string
28
- user_input?: string
29
- tools_executed: ToolExecuted[]
30
- input_guardrails_triggered: string[]
31
- output_guardrails_triggered: string[]
32
- exit: boolean
33
- error: boolean
34
- knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[]
35
- messageId?: string
36
- }
37
-
38
- export const AiAgent = (props: AiAgentDebugEvent) => {
39
- const { previewUtils } = useContext(WebchatContext)
40
-
41
- // Collect all sources IDs, chunk IDs and query from all tools
42
- const { allSourcesIds, allChunksIds, query } = useMemo(() => {
43
- const allSourcesIds: string[] = []
44
- const allChunksIds: string[] = []
45
- let query: string | undefined
46
-
47
- props.tools_executed.forEach(tool => {
48
- if (
49
- tool.tool_arguments?.query &&
50
- typeof tool.tool_arguments.query === 'string'
51
- ) {
52
- query = tool.tool_arguments.query
53
- }
54
- if (tool.knowledgebase_sources_ids) {
55
- allSourcesIds.push(...tool.knowledgebase_sources_ids)
56
- }
57
- if (tool.knowledgebase_chunks_ids) {
58
- allChunksIds.push(...tool.knowledgebase_chunks_ids)
59
- }
60
- })
61
-
62
- return { allSourcesIds, allChunksIds, query }
63
- }, [props.tools_executed])
64
-
65
- const {
66
- sources: allSources,
67
- chunks: allChunks,
68
- chunksWithSources,
69
- getIconForSourceType,
70
- } = useKnowledgeBaseInfo({
71
- sourceIds: allSourcesIds,
72
- chunkIds: allChunksIds,
73
- messageId: props.messageId,
74
- existingChunksWithSources: props.knowledge_base_chunks_with_sources,
75
- })
76
-
77
- const handleSeeChunks = () => {
78
- if (previewUtils?.onClickOpenChunks) {
79
- previewUtils.onClickOpenChunks(chunksWithSources)
80
- }
81
- }
82
- return (
83
- <>
84
- {query && (
85
- <StyledDebugDetail>
86
- <StyledDebugLabel>{LABELS.QUERY}</StyledDebugLabel>
87
- <StyledDebugValue>&quot;{query}&quot;</StyledDebugValue>
88
- </StyledDebugDetail>
89
- )}
90
-
91
- <SourcesSection
92
- sources={allSources}
93
- chunks={allChunks}
94
- getIconForSourceType={getIconForSourceType}
95
- onSeeChunks={handleSeeChunks}
96
- label={LABELS.KNOWLEDGE_GATHERED}
97
- />
98
-
99
- {props.tools_executed.length > 0 && (
100
- <StyledDebugDetail>
101
- <StyledDebugLabel>{LABELS.EXECUTED_TOOLS}</StyledDebugLabel>
102
- {props.tools_executed.map((tool, index) => (
103
- <StyledDebugItemWithIcon key={`${tool.tool_name}-${index}`}>
104
- <ScrewdriverWrenchSvg />
105
- {tool.tool_name}
106
- </StyledDebugItemWithIcon>
107
- ))}
108
- </StyledDebugDetail>
109
- )}
110
-
111
- {props.tools_executed.length === 0 && (
112
- <StyledDebugDetail>
113
- <StyledDebugLabel>{LABELS.NO_TOOLS_EXECUTED}</StyledDebugLabel>
114
- </StyledDebugDetail>
115
- )}
116
-
117
- <GuardrailList
118
- keyPrefix='input'
119
- guardrails={props.input_guardrails_triggered}
120
- />
121
- <GuardrailList
122
- keyPrefix='output'
123
- guardrails={props.output_guardrails_triggered}
124
- $isLastItem={!props.exit && !props.error}
125
- />
126
-
127
- {props.exit && (
128
- <StyledDebugDetail>
129
- <StyledDebugLabel>{LABELS.EXIT}</StyledDebugLabel>
130
- </StyledDebugDetail>
131
- )}
132
-
133
- {props.error && (
134
- <StyledDebugDetail>
135
- <StyledDebugLabel>{LABELS.ERROR}</StyledDebugLabel>
136
- </StyledDebugDetail>
137
- )}
138
- </>
139
- )
140
- }
141
-
142
- export const getAiAgentEventConfig = (
143
- data: AiAgentDebugEvent
144
- ): DebugEventConfig => {
145
- const title = (
146
- <>
147
- AI Agent triggered <span>- {data.flow_node_content_id}</span>
148
- </>
149
- )
150
-
151
- return {
152
- action: EventAction.AiAgent,
153
- title,
154
- component: AiAgent,
155
- icon: <WandSvg />,
156
- collapsible: true,
157
- }
158
- }