@nethru/kit 1.1.18 → 1.1.19
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/dist/components/chat/content/ToolContent.js +57 -13
- package/dist/components/chat/content/wisecollector/ColumnChartContent.js +6 -6
- package/dist/components/chat/content/wisecollector/PeriodCompareChartContent.js +7 -8
- package/dist/components/chat/content/wisecollector/PieChartContent.js +8 -6
- package/dist/components/chat/content/wisecollector/StackedAreaChartContent.js +30 -15
- package/dist/components/chat/content/wisecollector/StackedAreaTrendChartWithSelectContent.js +75 -0
- package/dist/components/chat/contexts/ToolContext.js +12 -2
- package/package.json +1 -1
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import React, { useMemo } from "react";
|
|
1
|
+
import React, { useCallback, useMemo } from "react";
|
|
2
2
|
import { Box, Stack } from '@mui/material';
|
|
3
3
|
import { useToolContext } from "../contexts/ToolContext";
|
|
4
4
|
import ColumnChartContent from "./wisecollector/ColumnChartContent";
|
|
5
5
|
import StackedAreaChartContent from "./wisecollector/StackedAreaChartContent";
|
|
6
6
|
import PieChartContent from "./wisecollector/PieChartContent";
|
|
7
7
|
import PeriodCompareChartContent from "./wisecollector/PeriodCompareChartContent";
|
|
8
|
+
import StackedAreaTrendChartWithSelectContent from "./wisecollector/StackedAreaTrendChartWithSelectContent";
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const summaryToolNames = ['query-summary-by-container-id', 'query-summary-by-task-id'];
|
|
10
11
|
const trendToolNames = ['query-trend-by-container-id', 'query-trend-by-task-id'];
|
|
12
|
+
const trendDetailToolNames = ['query-trend-detail-by-task-id'];
|
|
11
13
|
export default function ToolContent() {
|
|
12
14
|
const {
|
|
13
15
|
kinds,
|
|
@@ -18,24 +20,49 @@ export default function ToolContent() {
|
|
|
18
20
|
const summaryTools = useMemo(() => tools.filter(t => summaryToolNames.includes(t.name)), [tools]);
|
|
19
21
|
const {
|
|
20
22
|
periodTrendTools,
|
|
21
|
-
trendTools
|
|
22
|
-
|
|
23
|
+
trendTools,
|
|
24
|
+
trendDetailTools
|
|
25
|
+
} = useMemo(() => groupBy(hasCompare, tools), [tools, hasCompare]);
|
|
23
26
|
const toolCount = useMemo(() => summaryTools.length + periodTrendTools.length + trendTools.length + jsonTools.length, [summaryTools, periodTrendTools, trendTools, jsonTools]);
|
|
27
|
+
const taskType = useMemo(() => {
|
|
28
|
+
return tools.find(t => t.name === "search-task-by-keyword")?.result?.result[0]?.taskType;
|
|
29
|
+
}, [tools]);
|
|
30
|
+
const getSeriesKeyByTrend = useCallback(tools => {
|
|
31
|
+
return tools?.some(t => t.name === 'query-trend-by-container-id') ? 'containerId' : 'taskId';
|
|
32
|
+
}, []);
|
|
33
|
+
const getSeriesKeyBySummary = useCallback(tool => {
|
|
34
|
+
return tool.name === 'query-summary-by-container-id' ? 'containerId' : 'taskId';
|
|
35
|
+
}, []);
|
|
24
36
|
return /*#__PURE__*/_jsxs(Stack, {
|
|
25
37
|
gap: 5,
|
|
26
38
|
marginBottom: toolCount > 0 ? 5 : 0,
|
|
27
39
|
children: [hasCompare && summaryTools.length >= 2 ? /*#__PURE__*/_jsx(ColumnChartContent, {
|
|
28
|
-
tools: summaryTools
|
|
40
|
+
tools: summaryTools,
|
|
41
|
+
seriesKeyFunc: getSeriesKeyBySummary
|
|
29
42
|
}) : summaryTools.map((tool, index) => /*#__PURE__*/_jsx(PieChartContent, {
|
|
30
|
-
tool: tool
|
|
43
|
+
tool: tool,
|
|
44
|
+
seriesKeyFunc: getSeriesKeyBySummary
|
|
31
45
|
}, index)), periodTrendTools.map((tools, index) => /*#__PURE__*/_jsx(PeriodCompareChartContent, {
|
|
32
|
-
tools: tools
|
|
46
|
+
tools: tools,
|
|
47
|
+
seriesKey: getSeriesKeyByTrend(tools)
|
|
33
48
|
}, index)), trendTools.map((tools, index1) => {
|
|
34
49
|
if (hasCompare && tools.length >= 2) return /*#__PURE__*/_jsx(StackedAreaChartContent, {
|
|
35
|
-
tools: tools
|
|
50
|
+
tools: tools,
|
|
51
|
+
seriesKey: getSeriesKeyByTrend(tools)
|
|
36
52
|
}, index1);else {
|
|
37
53
|
return tools.map((tool, index2) => /*#__PURE__*/_jsx(StackedAreaChartContent, {
|
|
38
|
-
tools: [tool]
|
|
54
|
+
tools: [tool],
|
|
55
|
+
seriesKey: getSeriesKeyByTrend([tool])
|
|
56
|
+
}, index2));
|
|
57
|
+
}
|
|
58
|
+
}), trendDetailTools.map((tools, index) => {
|
|
59
|
+
if (hasCompare && tools.length >= 2) return /*#__PURE__*/_jsx(StackedAreaTrendChartWithSelectContent, {
|
|
60
|
+
tools: tools,
|
|
61
|
+
selectKey: taskType
|
|
62
|
+
}, index);else {
|
|
63
|
+
return tools.map((tool, index2) => /*#__PURE__*/_jsx(StackedAreaTrendChartWithSelectContent, {
|
|
64
|
+
tools: [tool],
|
|
65
|
+
selectKey: taskType
|
|
39
66
|
}, index2));
|
|
40
67
|
}
|
|
41
68
|
}), jsonTools.map((tool, index) => /*#__PURE__*/_jsxs(Box, {
|
|
@@ -54,15 +81,32 @@ export default function ToolContent() {
|
|
|
54
81
|
}, index))]
|
|
55
82
|
});
|
|
56
83
|
}
|
|
84
|
+
function groupBy(hasCompare, tools) {
|
|
85
|
+
const trendTools = tools.filter(t => trendToolNames.includes(t.name));
|
|
86
|
+
const trendDetailTools = tools.filter(t => trendDetailToolNames.includes(t.name));
|
|
87
|
+
if (trendTools.length > 0 || trendDetailTools.length > 0) {
|
|
88
|
+
const groupedTrend = groupTools(hasCompare, trendTools);
|
|
89
|
+
const groupedTrendDetail = groupTools(hasCompare, trendDetailTools);
|
|
90
|
+
return {
|
|
91
|
+
periodTrendTools: groupedTrend.periodTrendTools,
|
|
92
|
+
trendTools: groupedTrend.tools,
|
|
93
|
+
trendDetailTools: groupedTrendDetail.tools
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
periodTrendTools: [],
|
|
98
|
+
trendTools: [],
|
|
99
|
+
trendDetailTools: []
|
|
100
|
+
};
|
|
101
|
+
}
|
|
57
102
|
function groupTools(hasCompare, tools) {
|
|
58
103
|
const periodKey = t => `${t.arguments.from}~${t.arguments.to}`;
|
|
59
104
|
const idMap = new Map();
|
|
60
105
|
const periodMap = new Map();
|
|
61
106
|
const used = new Set();
|
|
62
|
-
const filtered = tools.filter(t => trendToolNames.includes(t.name));
|
|
63
107
|
const periodTrendTools = [];
|
|
64
|
-
if (hasCompare) {
|
|
65
|
-
for (const tool of
|
|
108
|
+
if (hasCompare && tools.every(t => !trendDetailToolNames.includes(t.name))) {
|
|
109
|
+
for (const tool of tools) {
|
|
66
110
|
const id = tool.arguments.containerId ?? tool.arguments.taskId;
|
|
67
111
|
if (!idMap.has(id)) idMap.set(id, []);
|
|
68
112
|
idMap.get(id).push(tool);
|
|
@@ -78,7 +122,7 @@ function groupTools(hasCompare, tools) {
|
|
|
78
122
|
}
|
|
79
123
|
}
|
|
80
124
|
}
|
|
81
|
-
for (const tool of
|
|
125
|
+
for (const tool of tools) {
|
|
82
126
|
if (used.has(tool)) continue;
|
|
83
127
|
const key = periodKey(tool);
|
|
84
128
|
if (!periodMap.has(key)) periodMap.set(key, []);
|
|
@@ -86,7 +130,7 @@ function groupTools(hasCompare, tools) {
|
|
|
86
130
|
}
|
|
87
131
|
return {
|
|
88
132
|
periodTrendTools,
|
|
89
|
-
|
|
133
|
+
tools: Array.from(periodMap.values())
|
|
90
134
|
};
|
|
91
135
|
}
|
|
92
136
|
const styles = {
|
|
@@ -4,7 +4,8 @@ import { formatDateRange } from "../../../../js/dateHelper";
|
|
|
4
4
|
import ColumnChart from "../../../charts/ColumnChart";
|
|
5
5
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
6
6
|
const ColumnChartContent = ({
|
|
7
|
-
tools = []
|
|
7
|
+
tools = [],
|
|
8
|
+
seriesKeyFunc
|
|
8
9
|
}) => {
|
|
9
10
|
const {
|
|
10
11
|
getName
|
|
@@ -17,12 +18,12 @@ const ColumnChartContent = ({
|
|
|
17
18
|
marginBottom: '30px'
|
|
18
19
|
},
|
|
19
20
|
children: /*#__PURE__*/_jsx(ColumnChart, {
|
|
20
|
-
data: toData(tools, getName)
|
|
21
|
+
data: toData(tools, seriesKeyFunc, getName)
|
|
21
22
|
})
|
|
22
23
|
})
|
|
23
24
|
});
|
|
24
25
|
};
|
|
25
|
-
function toData(tools, getName) {
|
|
26
|
+
function toData(tools, seriesKeyFunc, getName) {
|
|
26
27
|
const items = [];
|
|
27
28
|
const hasConvert = tools.some(tool => {
|
|
28
29
|
const result = tool?.result?.result;
|
|
@@ -30,13 +31,12 @@ function toData(tools, getName) {
|
|
|
30
31
|
});
|
|
31
32
|
tools.sort((a, b) => a.arguments.from.localeCompare(b.arguments.from)).forEach(tool => {
|
|
32
33
|
const {
|
|
33
|
-
containerId,
|
|
34
|
-
taskId,
|
|
35
34
|
from,
|
|
36
35
|
to
|
|
37
36
|
} = tool.arguments;
|
|
37
|
+
const seriesKey = seriesKeyFunc(tool);
|
|
38
38
|
const item = {
|
|
39
|
-
name: `<b>${getName(
|
|
39
|
+
name: `<b>${getName(tool.arguments[seriesKey])}</b> <span style="font-size:10px">(${formatDateRange(from, to)})</span>`,
|
|
40
40
|
data: []
|
|
41
41
|
};
|
|
42
42
|
const result = Array.isArray(tool.result.result) ? reduce(tool.result.result) : tool.result.result;
|
|
@@ -7,12 +7,14 @@ import { formatDuration } from "../../../charts/Number";
|
|
|
7
7
|
import { formatMinutes } from "../../../charts/Time";
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
export default function PeriodCompareChartContent({
|
|
10
|
-
tools
|
|
10
|
+
tools,
|
|
11
|
+
seriesKey
|
|
11
12
|
}) {
|
|
12
13
|
const chartData = useMemo(() => toChartData(tools), [tools]);
|
|
13
14
|
return /*#__PURE__*/_jsxs("div", {
|
|
14
15
|
children: [/*#__PURE__*/_jsx(Title, {
|
|
15
|
-
tools: tools
|
|
16
|
+
tools: tools,
|
|
17
|
+
seriesKey: seriesKey
|
|
16
18
|
}), /*#__PURE__*/_jsx(PeriodCompareChart, {
|
|
17
19
|
...chartData,
|
|
18
20
|
height: 220
|
|
@@ -20,18 +22,15 @@ export default function PeriodCompareChartContent({
|
|
|
20
22
|
});
|
|
21
23
|
}
|
|
22
24
|
function Title({
|
|
23
|
-
tools
|
|
25
|
+
tools,
|
|
26
|
+
seriesKey
|
|
24
27
|
}) {
|
|
25
28
|
const {
|
|
26
29
|
getName
|
|
27
30
|
} = useToolContext();
|
|
28
|
-
const {
|
|
29
|
-
containerId,
|
|
30
|
-
taskId
|
|
31
|
-
} = tools[0].arguments;
|
|
32
31
|
return /*#__PURE__*/_jsx("div", {
|
|
33
32
|
style: styles.title,
|
|
34
|
-
children: getName(
|
|
33
|
+
children: getName(tools[0].arguments[seriesKey])
|
|
35
34
|
});
|
|
36
35
|
}
|
|
37
36
|
function toChartData(tools) {
|
|
@@ -4,14 +4,16 @@ import { useToolContext } from "../../contexts/ToolContext";
|
|
|
4
4
|
import { formatDateRange } from "../../../../js/dateHelper";
|
|
5
5
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
6
|
const PieChartContent = ({
|
|
7
|
-
tool
|
|
7
|
+
tool,
|
|
8
|
+
seriesKeyFunc
|
|
8
9
|
}) => {
|
|
9
10
|
const width = useMemo(() => {
|
|
10
11
|
return tool?.result?.result?.length < 3 ? 300 : undefined;
|
|
11
12
|
}, []);
|
|
12
13
|
return /*#__PURE__*/_jsxs("div", {
|
|
13
14
|
children: [/*#__PURE__*/_jsx(Title, {
|
|
14
|
-
tool: tool
|
|
15
|
+
tool: tool,
|
|
16
|
+
seriesKeyFunc: seriesKeyFunc
|
|
15
17
|
}), /*#__PURE__*/_jsx("div", {
|
|
16
18
|
style: styles.container,
|
|
17
19
|
children: toData(tool).map((item, index) => /*#__PURE__*/_jsx(PieChart, {
|
|
@@ -22,21 +24,21 @@ const PieChartContent = ({
|
|
|
22
24
|
});
|
|
23
25
|
};
|
|
24
26
|
const Title = ({
|
|
25
|
-
tool
|
|
27
|
+
tool,
|
|
28
|
+
seriesKeyFunc
|
|
26
29
|
}) => {
|
|
27
30
|
const {
|
|
28
31
|
getName
|
|
29
32
|
} = useToolContext();
|
|
30
33
|
const {
|
|
31
|
-
containerId,
|
|
32
|
-
taskId,
|
|
33
34
|
from,
|
|
34
35
|
to
|
|
35
36
|
} = tool.arguments;
|
|
37
|
+
const seriesKey = seriesKeyFunc(tool);
|
|
36
38
|
return /*#__PURE__*/_jsxs("div", {
|
|
37
39
|
style: styles.title,
|
|
38
40
|
children: [/*#__PURE__*/_jsx("div", {
|
|
39
|
-
children: getName(
|
|
41
|
+
children: getName(tool.arguments[seriesKey])
|
|
40
42
|
}), /*#__PURE__*/_jsxs("div", {
|
|
41
43
|
style: styles.subtitle,
|
|
42
44
|
children: ["(", formatDateRange(from, to), ")"]
|
|
@@ -4,35 +4,47 @@ import { isOneDay, isToday } from "../../../../js/dateHelper";
|
|
|
4
4
|
import StackedAreaTrendChart from "../../../charts/StackedAreaTrendChart";
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
export default function StackedAreaChartContent({
|
|
7
|
-
tools
|
|
7
|
+
tools,
|
|
8
|
+
seriesKey,
|
|
9
|
+
type = 'output',
|
|
10
|
+
...props
|
|
8
11
|
}) {
|
|
9
12
|
const {
|
|
10
13
|
getName
|
|
11
14
|
} = useToolContext();
|
|
12
15
|
return /*#__PURE__*/_jsx("div", {
|
|
13
16
|
children: /*#__PURE__*/_jsx(StackedAreaTrendChart, {
|
|
14
|
-
metrics: toMetrics(tools, getName),
|
|
15
|
-
records: fillRecords(tools, toRecords(tools)),
|
|
17
|
+
metrics: toMetrics(tools, seriesKey, getName),
|
|
18
|
+
records: fillRecords(tools, toRecords(type, seriesKey, tools)),
|
|
16
19
|
isDaily: isDaily(tools),
|
|
17
20
|
xPlotIndex: xPlotIndex(tools),
|
|
18
21
|
xAxisTickInterval: 4,
|
|
19
|
-
height: 200
|
|
22
|
+
height: 200,
|
|
23
|
+
...props
|
|
20
24
|
})
|
|
21
25
|
});
|
|
22
26
|
}
|
|
23
|
-
function toMetrics(tools, getName) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
function toMetrics(tools, seriesKey, getName) {
|
|
28
|
+
const formatId = tool => `${tool.arguments.agentId} - ${tool.arguments.taskId}`;
|
|
29
|
+
const formatName = tool => `${getName(tool.arguments.agentId)} - ${getName(tool.arguments.taskId)}`;
|
|
30
|
+
if (isAgentId(seriesKey)) {
|
|
31
|
+
return tools.map(tool => ({
|
|
32
|
+
id: formatId(tool),
|
|
33
|
+
name: formatName(tool),
|
|
34
|
+
type: 'NUMBER'
|
|
35
|
+
}));
|
|
36
|
+
} else {
|
|
37
|
+
return tools.map(tool => ({
|
|
38
|
+
id: tool.arguments[seriesKey],
|
|
39
|
+
name: getName(tool.arguments[seriesKey]),
|
|
40
|
+
type: 'NUMBER'
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
29
43
|
}
|
|
30
|
-
function toRecords(tools) {
|
|
44
|
+
function toRecords(type, seriesKey, tools) {
|
|
31
45
|
const recordMap = new Map();
|
|
32
46
|
tools.forEach(tool => {
|
|
33
|
-
const {
|
|
34
|
-
taskId
|
|
35
|
-
} = tool.arguments;
|
|
47
|
+
const id = isAgentId(seriesKey) ? `${tool.arguments.agentId} - ${tool.arguments.taskId}` : tool.arguments[seriesKey];
|
|
36
48
|
const results = tool?.result?.result || [];
|
|
37
49
|
results.forEach(result => {
|
|
38
50
|
const {
|
|
@@ -42,7 +54,7 @@ function toRecords(tools) {
|
|
|
42
54
|
time: time,
|
|
43
55
|
metric: {}
|
|
44
56
|
});
|
|
45
|
-
recordMap.get(time).metric[
|
|
57
|
+
recordMap.get(time).metric[id] = result.metric[type];
|
|
46
58
|
});
|
|
47
59
|
});
|
|
48
60
|
return Array.from(recordMap.values()).sort((a, b) => a.time - b.time);
|
|
@@ -78,6 +90,9 @@ function fillRecords(tools, records) {
|
|
|
78
90
|
}
|
|
79
91
|
return result;
|
|
80
92
|
}
|
|
93
|
+
function isAgentId(seriesKey) {
|
|
94
|
+
return seriesKey === 'agentId';
|
|
95
|
+
}
|
|
81
96
|
function isDaily(tools) {
|
|
82
97
|
const {
|
|
83
98
|
from,
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import React, { useMemo, useState } from "react";
|
|
2
|
+
import { MenuItem, Select } from "@nethru/ui";
|
|
3
|
+
import * as ChartColors from "../../../charts/ChartColors";
|
|
4
|
+
import StackedAreaChartContent from "./StackedAreaChartContent";
|
|
5
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
const metrics = {
|
|
7
|
+
collect: 'output',
|
|
8
|
+
convert: [{
|
|
9
|
+
label: '처리',
|
|
10
|
+
key: 'output'
|
|
11
|
+
}, {
|
|
12
|
+
label: '필터됨',
|
|
13
|
+
key: 'filter'
|
|
14
|
+
}, {
|
|
15
|
+
label: '에러',
|
|
16
|
+
key: 'error'
|
|
17
|
+
}],
|
|
18
|
+
transport: [{
|
|
19
|
+
label: '처리',
|
|
20
|
+
key: 'output'
|
|
21
|
+
}, {
|
|
22
|
+
label: '에러',
|
|
23
|
+
key: 'error'
|
|
24
|
+
}]
|
|
25
|
+
};
|
|
26
|
+
export default function StackedAreaTrendChartWithSelectContent({
|
|
27
|
+
tools,
|
|
28
|
+
selectKey,
|
|
29
|
+
...props
|
|
30
|
+
}) {
|
|
31
|
+
const [metric, setMetric] = useState('output');
|
|
32
|
+
const colors = useMemo(() => {
|
|
33
|
+
return tools.map((_, index) => ChartColors.colors[(index + 1) % ChartColors.colors.length]);
|
|
34
|
+
}, [tools]);
|
|
35
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
36
|
+
children: [selectKey !== undefined && Array.isArray(metrics[selectKey]) && /*#__PURE__*/_jsx(MetricSelect, {
|
|
37
|
+
value: metric,
|
|
38
|
+
onChange: e => setMetric(e.target.value),
|
|
39
|
+
type: selectKey
|
|
40
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
41
|
+
children: /*#__PURE__*/_jsx(StackedAreaChartContent, {
|
|
42
|
+
seriesKey: "agentId",
|
|
43
|
+
type: metric,
|
|
44
|
+
tools: tools,
|
|
45
|
+
tooltipOutSide: selectKey !== 'collect',
|
|
46
|
+
yAxisLabelEnabled: false,
|
|
47
|
+
colors: colors,
|
|
48
|
+
legendAlign: "right",
|
|
49
|
+
height: 220,
|
|
50
|
+
...props
|
|
51
|
+
})
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function MetricSelect({
|
|
56
|
+
value,
|
|
57
|
+
onChange,
|
|
58
|
+
type
|
|
59
|
+
}) {
|
|
60
|
+
return /*#__PURE__*/_jsx(Select, {
|
|
61
|
+
value: value,
|
|
62
|
+
onChange: onChange,
|
|
63
|
+
sx: {
|
|
64
|
+
position: 'absolute',
|
|
65
|
+
top: '34px',
|
|
66
|
+
left: '6px',
|
|
67
|
+
zIndex: 1,
|
|
68
|
+
width: '92px'
|
|
69
|
+
},
|
|
70
|
+
children: metrics[type].map(metric => /*#__PURE__*/_jsx(MenuItem, {
|
|
71
|
+
value: metric.key,
|
|
72
|
+
children: metric.label
|
|
73
|
+
}, metric.key))
|
|
74
|
+
});
|
|
75
|
+
}
|
|
@@ -9,8 +9,9 @@ export function ToolContextProvider({
|
|
|
9
9
|
const tools = useMemo(() => message.content.filter(c => c.type === 'tool'), [message]);
|
|
10
10
|
const containerConfigMap = useMemo(() => makeContainerConfigs(tools), [tools]);
|
|
11
11
|
const taskConfigMap = useMemo(() => makeTaskConfigs(tools), [tools]);
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const agentConfigMap = useMemo(() => makeAgentConfigs(tools), [tools]);
|
|
13
|
+
const getName = useCallback(id => {
|
|
14
|
+
return containerConfigMap.get(id) || taskConfigMap.get(id) || agentConfigMap.get(id);
|
|
14
15
|
}, [containerConfigMap, taskConfigMap]);
|
|
15
16
|
return /*#__PURE__*/_jsx(ToolContext.Provider, {
|
|
16
17
|
value: {
|
|
@@ -43,4 +44,13 @@ function makeTaskConfigs(tools) {
|
|
|
43
44
|
});
|
|
44
45
|
});
|
|
45
46
|
return map;
|
|
47
|
+
}
|
|
48
|
+
function makeAgentConfigs(tools) {
|
|
49
|
+
const map = new Map();
|
|
50
|
+
tools.filter(t => t.name === 'search-agent-by-keyword').forEach(tool => {
|
|
51
|
+
tool.result?.result?.forEach(item => {
|
|
52
|
+
map.set(item.agentId, item.agentName);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
return map;
|
|
46
56
|
}
|