@agent-native/core 0.58.3 → 0.58.5
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/agent/production-agent.d.ts +9 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +80 -4
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/cli/plan-local.d.ts +34 -0
- package/dist/cli/plan-local.d.ts.map +1 -1
- package/dist/cli/plan-local.js +205 -1
- package/dist/cli/plan-local.js.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.js +1 -1
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/cli/recap.d.ts +5 -0
- package/dist/cli/recap.d.ts.map +1 -1
- package/dist/cli/recap.js +19 -2
- package/dist/cli/recap.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +3 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +6 -3
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +5 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +141 -39
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +44 -31
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/blocks/library/diagram.d.ts.map +1 -1
- package/dist/client/blocks/library/diagram.js +85 -20
- package/dist/client/blocks/library/diagram.js.map +1 -1
- package/dist/client/blocks/library/tabs.d.ts.map +1 -1
- package/dist/client/blocks/library/tabs.js +5 -5
- package/dist/client/blocks/library/tabs.js.map +1 -1
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +13 -10
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat/run-recovery.d.ts.map +1 -1
- package/dist/client/chat/run-recovery.js +3 -3
- package/dist/client/chat/run-recovery.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +0 -1
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +5 -2
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/chat/widgets/DataChartRenderer.d.ts.map +1 -1
- package/dist/client/chat/widgets/DataChartRenderer.js +98 -21
- package/dist/client/chat/widgets/DataChartRenderer.js.map +1 -1
- package/dist/client/chat/widgets/builtin-tool-renderers.d.ts +4 -1
- package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
- package/dist/client/chat/widgets/builtin-tool-renderers.js +30 -4
- package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
- package/dist/client/composer/AgentComposerFrame.js +1 -1
- package/dist/client/composer/AgentComposerFrame.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +17 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +6 -2
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/framework-request-handler.d.ts.map +1 -1
- package/dist/server/framework-request-handler.js +13 -0
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/sharing/actions/set-resource-visibility.d.ts.map +1 -1
- package/dist/sharing/actions/set-resource-visibility.js +25 -11
- package/dist/sharing/actions/set-resource-visibility.js.map +1 -1
- package/dist/styles/agent-native.css +115 -2
- package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +100 -0
- package/docs/content/pr-visual-recap.md +2 -2
- package/package.json +1 -1
- package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +100 -0
|
@@ -1,33 +1,110 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
2
|
-
import { useEffect, useState } from "react";
|
|
3
|
-
import { Area, AreaChart, Bar, BarChart, CartesianGrid, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
2
|
const DEFAULT_COLORS = [
|
|
5
3
|
"hsl(var(--primary))",
|
|
6
4
|
"hsl(199 89% 48%)",
|
|
7
5
|
"hsl(151 55% 42%)",
|
|
8
6
|
"hsl(35 92% 50%)",
|
|
9
7
|
];
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
const WIDTH = 640;
|
|
9
|
+
const HEIGHT = 240;
|
|
10
|
+
const MARGIN = { top: 14, right: 18, bottom: 34, left: 46 };
|
|
11
|
+
const PLOT_WIDTH = WIDTH - MARGIN.left - MARGIN.right;
|
|
12
|
+
const PLOT_HEIGHT = HEIGHT - MARGIN.top - MARGIN.bottom;
|
|
13
|
+
function numericValue(row, key) {
|
|
14
|
+
const value = row[key];
|
|
15
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
16
|
+
return value;
|
|
17
|
+
if (typeof value === "string" && value.trim()) {
|
|
18
|
+
const parsed = Number(value);
|
|
19
|
+
if (Number.isFinite(parsed))
|
|
20
|
+
return parsed;
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
function formatTick(value) {
|
|
25
|
+
if (Math.abs(value) >= 1000)
|
|
26
|
+
return value.toLocaleString();
|
|
27
|
+
if (Number.isInteger(value))
|
|
28
|
+
return String(value);
|
|
29
|
+
return value.toFixed(1);
|
|
30
|
+
}
|
|
31
|
+
function labelFor(value) {
|
|
32
|
+
const label = value == null ? "" : String(value);
|
|
33
|
+
return label.length > 16 ? `${label.slice(0, 15)}...` : label;
|
|
34
|
+
}
|
|
35
|
+
function rangeFor(chart) {
|
|
36
|
+
const values = chart.data.flatMap((row) => chart.series
|
|
37
|
+
.map((series) => numericValue(row, series.key))
|
|
38
|
+
.filter((value) => value !== null));
|
|
39
|
+
if (values.length === 0)
|
|
40
|
+
return { min: 0, max: 1 };
|
|
41
|
+
let min = Math.min(...values);
|
|
42
|
+
let max = Math.max(...values);
|
|
43
|
+
if (chart.type === "bar" || chart.type === "area") {
|
|
44
|
+
min = Math.min(0, min);
|
|
45
|
+
max = Math.max(0, max);
|
|
46
|
+
}
|
|
47
|
+
if (min === max) {
|
|
48
|
+
const pad = Math.abs(max || 1) * 0.2;
|
|
49
|
+
min -= pad;
|
|
50
|
+
max += pad;
|
|
20
51
|
}
|
|
21
|
-
|
|
22
|
-
|
|
52
|
+
return { min, max };
|
|
53
|
+
}
|
|
54
|
+
function ChartBody({ chart }) {
|
|
55
|
+
const { min, max } = rangeFor(chart);
|
|
56
|
+
const yFor = (value) => MARGIN.top + ((max - value) / (max - min)) * PLOT_HEIGHT;
|
|
57
|
+
const xForPoint = (index) => chart.data.length <= 1
|
|
58
|
+
? MARGIN.left + PLOT_WIDTH / 2
|
|
59
|
+
: MARGIN.left + (index / (chart.data.length - 1)) * PLOT_WIDTH;
|
|
60
|
+
const gridTicks = Array.from({ length: 4 }, (_, index) => {
|
|
61
|
+
const value = min + ((max - min) * index) / 3;
|
|
62
|
+
return { value, y: yFor(value) };
|
|
63
|
+
});
|
|
64
|
+
const xTickEvery = Math.max(1, Math.ceil(chart.data.length / 6));
|
|
65
|
+
const zeroY = yFor(Math.max(min, Math.min(max, 0)));
|
|
66
|
+
const axes = (_jsxs("g", { "aria-hidden": "true", children: [gridTicks.map((tick) => (_jsxs("g", { children: [_jsx("line", { x1: MARGIN.left, x2: WIDTH - MARGIN.right, y1: tick.y, y2: tick.y, stroke: "hsl(var(--border))", strokeDasharray: "3 3" }), _jsx("text", { x: MARGIN.left - 8, y: tick.y + 4, fill: "hsl(var(--muted-foreground))", fontSize: "11", textAnchor: "end", children: formatTick(tick.value) })] }, tick.y))), _jsx("line", { x1: MARGIN.left, x2: WIDTH - MARGIN.right, y1: zeroY, y2: zeroY, stroke: "hsl(var(--border))" }), chart.data.map((row, index) => index % xTickEvery === 0 || index === chart.data.length - 1 ? (_jsx("text", { x: chart.type === "bar"
|
|
67
|
+
? MARGIN.left + (index + 0.5) * (PLOT_WIDTH / chart.data.length)
|
|
68
|
+
: xForPoint(index), y: HEIGHT - 12, fill: "hsl(var(--muted-foreground))", fontSize: "11", textAnchor: "middle", children: labelFor(row[chart.xKey]) }, `${index}-${String(row[chart.xKey] ?? "")}`)) : null)] }));
|
|
69
|
+
if (chart.type === "bar") {
|
|
70
|
+
const slotWidth = PLOT_WIDTH / Math.max(1, chart.data.length);
|
|
71
|
+
const groupWidth = slotWidth * 0.72;
|
|
72
|
+
const barWidth = groupWidth / Math.max(1, chart.series.length);
|
|
73
|
+
return (_jsxs(_Fragment, { children: [axes, chart.data.map((row, rowIndex) => chart.series.map((series, seriesIndex) => {
|
|
74
|
+
const value = numericValue(row, series.key);
|
|
75
|
+
if (value === null)
|
|
76
|
+
return null;
|
|
77
|
+
const color = series.color ??
|
|
78
|
+
DEFAULT_COLORS[seriesIndex % DEFAULT_COLORS.length];
|
|
79
|
+
const y = yFor(Math.max(value, 0));
|
|
80
|
+
const height = Math.max(1, Math.abs(zeroY - yFor(value)));
|
|
81
|
+
return (_jsx("rect", { x: MARGIN.left +
|
|
82
|
+
rowIndex * slotWidth +
|
|
83
|
+
(slotWidth - groupWidth) / 2 +
|
|
84
|
+
seriesIndex * barWidth, y: y, width: Math.max(2, barWidth - 2), height: height, rx: "3", fill: color }, `${rowIndex}-${series.key}`));
|
|
85
|
+
}))] }));
|
|
23
86
|
}
|
|
24
|
-
|
|
87
|
+
const paths = chart.series.map((series, seriesIndex) => {
|
|
88
|
+
const points = chart.data
|
|
89
|
+
.map((row, rowIndex) => {
|
|
90
|
+
const value = numericValue(row, series.key);
|
|
91
|
+
return value === null
|
|
92
|
+
? null
|
|
93
|
+
: { x: xForPoint(rowIndex), y: yFor(value) };
|
|
94
|
+
})
|
|
95
|
+
.filter((point) => point !== null);
|
|
96
|
+
const color = series.color ?? DEFAULT_COLORS[seriesIndex % DEFAULT_COLORS.length];
|
|
97
|
+
const linePath = points
|
|
98
|
+
.map((point, index) => `${index === 0 ? "M" : "L"} ${point.x} ${point.y}`)
|
|
99
|
+
.join(" ");
|
|
100
|
+
const areaPath = points.length > 0
|
|
101
|
+
? `${linePath} L ${points[points.length - 1].x} ${zeroY} L ${points[0].x} ${zeroY} Z`
|
|
102
|
+
: "";
|
|
103
|
+
return { series, color, linePath, areaPath, points };
|
|
104
|
+
});
|
|
105
|
+
return (_jsxs(_Fragment, { children: [axes, paths.map(({ series, color, areaPath }) => chart.type === "area" && areaPath ? (_jsx("path", { d: areaPath, fill: color, opacity: "0.18", stroke: "none" }, series.key)) : null), paths.map(({ series, color, linePath, points }) => (_jsxs("g", { children: [_jsx("path", { d: linePath, fill: "none", stroke: color, strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }), points.map((point, index) => (_jsx("circle", { cx: point.x, cy: point.y, r: "3", fill: "hsl(var(--background))", stroke: color, strokeWidth: "2" }, index)))] }, series.key)))] }));
|
|
25
106
|
}
|
|
26
107
|
export function DataChartRenderer({ chart }) {
|
|
27
|
-
|
|
28
|
-
useEffect(() => {
|
|
29
|
-
setReady(true);
|
|
30
|
-
}, []);
|
|
31
|
-
return (_jsx("div", { className: "h-60 w-full min-w-0", children: ready ? (_jsx(ResponsiveContainer, { width: "100%", height: "100%", children: _jsx(ChartBody, { chart: chart }) })) : null }));
|
|
108
|
+
return (_jsx("div", { className: "h-60 w-full min-w-0 overflow-hidden", children: _jsx("svg", { className: "agent-data-chart-renderer h-full w-full", viewBox: `0 0 ${WIDTH} ${HEIGHT}`, role: "img", "aria-label": chart.title ?? "Data chart", preserveAspectRatio: "none", children: _jsx(ChartBody, { chart: chart }) }) }));
|
|
32
109
|
}
|
|
33
110
|
//# sourceMappingURL=DataChartRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataChartRenderer.js","sourceRoot":"","sources":["../../../../src/client/chat/widgets/DataChartRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from \"react\";\nimport {\n Area,\n AreaChart,\n Bar,\n BarChart,\n CartesianGrid,\n Line,\n LineChart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport type { DataChartWidget as DataChartWidgetData } from \"./data-widget-types.js\";\n\nconst DEFAULT_COLORS = [\n \"hsl(var(--primary))\",\n \"hsl(199 89% 48%)\",\n \"hsl(151 55% 42%)\",\n \"hsl(35 92% 50%)\",\n];\n\nfunction ChartBody({ chart }: { chart: DataChartWidgetData }) {\n const axes = (\n <>\n <CartesianGrid strokeDasharray=\"3 3\" stroke=\"hsl(var(--border))\" />\n <XAxis\n dataKey={chart.xKey}\n tickLine={false}\n axisLine={false}\n tick={{ fill: \"hsl(var(--muted-foreground))\", fontSize: 11 }}\n />\n <YAxis\n tickLine={false}\n axisLine={false}\n tick={{ fill: \"hsl(var(--muted-foreground))\", fontSize: 11 }}\n width={34}\n />\n <Tooltip\n contentStyle={{\n background: \"hsl(var(--background))\",\n border: \"1px solid hsl(var(--border))\",\n borderRadius: 8,\n color: \"hsl(var(--foreground))\",\n fontSize: 12,\n }}\n />\n </>\n );\n\n if (chart.type === \"line\") {\n return (\n <LineChart data={chart.data}>\n {axes}\n {chart.series.map((series, index) => (\n <Line\n key={series.key}\n type=\"monotone\"\n dataKey={series.key}\n name={series.label}\n stroke={\n series.color ?? DEFAULT_COLORS[index % DEFAULT_COLORS.length]\n }\n strokeWidth={2}\n dot={false}\n isAnimationActive={false}\n />\n ))}\n </LineChart>\n );\n }\n\n if (chart.type === \"area\") {\n return (\n <AreaChart data={chart.data}>\n {axes}\n {chart.series.map((series, index) => (\n <Area\n key={series.key}\n type=\"monotone\"\n dataKey={series.key}\n name={series.label}\n stroke={\n series.color ?? DEFAULT_COLORS[index % DEFAULT_COLORS.length]\n }\n fill={series.color ?? DEFAULT_COLORS[index % DEFAULT_COLORS.length]}\n fillOpacity={0.18}\n isAnimationActive={false}\n />\n ))}\n </AreaChart>\n );\n }\n\n return (\n <BarChart data={chart.data}>\n {axes}\n {chart.series.map((series, index) => (\n <Bar\n key={series.key}\n dataKey={series.key}\n name={series.label}\n fill={series.color ?? DEFAULT_COLORS[index % DEFAULT_COLORS.length]}\n radius={[4, 4, 0, 0]}\n isAnimationActive={false}\n />\n ))}\n </BarChart>\n );\n}\n\nexport function DataChartRenderer({ chart }: { chart: DataChartWidgetData }) {\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n setReady(true);\n }, []);\n\n return (\n <div className=\"h-60 w-full min-w-0\">\n {ready ? (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <ChartBody chart={chart} />\n </ResponsiveContainer>\n ) : null}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DataChartRenderer.js","sourceRoot":"","sources":["../../../../src/client/chat/widgets/DataChartRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { DataChartWidget as DataChartWidgetData } from \"./data-widget-types.js\";\n\nconst DEFAULT_COLORS = [\n \"hsl(var(--primary))\",\n \"hsl(199 89% 48%)\",\n \"hsl(151 55% 42%)\",\n \"hsl(35 92% 50%)\",\n];\n\nconst WIDTH = 640;\nconst HEIGHT = 240;\nconst MARGIN = { top: 14, right: 18, bottom: 34, left: 46 };\nconst PLOT_WIDTH = WIDTH - MARGIN.left - MARGIN.right;\nconst PLOT_HEIGHT = HEIGHT - MARGIN.top - MARGIN.bottom;\n\nfunction numericValue(\n row: Record<string, unknown>,\n key: string,\n): number | null {\n const value = row[key];\n if (typeof value === \"number\" && Number.isFinite(value)) return value;\n if (typeof value === \"string\" && value.trim()) {\n const parsed = Number(value);\n if (Number.isFinite(parsed)) return parsed;\n }\n return null;\n}\n\nfunction formatTick(value: number): string {\n if (Math.abs(value) >= 1000) return value.toLocaleString();\n if (Number.isInteger(value)) return String(value);\n return value.toFixed(1);\n}\n\nfunction labelFor(value: unknown): string {\n const label = value == null ? \"\" : String(value);\n return label.length > 16 ? `${label.slice(0, 15)}...` : label;\n}\n\nfunction rangeFor(chart: DataChartWidgetData) {\n const values = chart.data.flatMap((row) =>\n chart.series\n .map((series) => numericValue(row, series.key))\n .filter((value): value is number => value !== null),\n );\n if (values.length === 0) return { min: 0, max: 1 };\n\n let min = Math.min(...values);\n let max = Math.max(...values);\n if (chart.type === \"bar\" || chart.type === \"area\") {\n min = Math.min(0, min);\n max = Math.max(0, max);\n }\n if (min === max) {\n const pad = Math.abs(max || 1) * 0.2;\n min -= pad;\n max += pad;\n }\n return { min, max };\n}\n\nfunction ChartBody({ chart }: { chart: DataChartWidgetData }) {\n const { min, max } = rangeFor(chart);\n const yFor = (value: number) =>\n MARGIN.top + ((max - value) / (max - min)) * PLOT_HEIGHT;\n const xForPoint = (index: number) =>\n chart.data.length <= 1\n ? MARGIN.left + PLOT_WIDTH / 2\n : MARGIN.left + (index / (chart.data.length - 1)) * PLOT_WIDTH;\n const gridTicks = Array.from({ length: 4 }, (_, index) => {\n const value = min + ((max - min) * index) / 3;\n return { value, y: yFor(value) };\n });\n const xTickEvery = Math.max(1, Math.ceil(chart.data.length / 6));\n const zeroY = yFor(Math.max(min, Math.min(max, 0)));\n\n const axes = (\n <g aria-hidden=\"true\">\n {gridTicks.map((tick) => (\n <g key={tick.y}>\n <line\n x1={MARGIN.left}\n x2={WIDTH - MARGIN.right}\n y1={tick.y}\n y2={tick.y}\n stroke=\"hsl(var(--border))\"\n strokeDasharray=\"3 3\"\n />\n <text\n x={MARGIN.left - 8}\n y={tick.y + 4}\n fill=\"hsl(var(--muted-foreground))\"\n fontSize=\"11\"\n textAnchor=\"end\"\n >\n {formatTick(tick.value)}\n </text>\n </g>\n ))}\n <line\n x1={MARGIN.left}\n x2={WIDTH - MARGIN.right}\n y1={zeroY}\n y2={zeroY}\n stroke=\"hsl(var(--border))\"\n />\n {chart.data.map((row, index) =>\n index % xTickEvery === 0 || index === chart.data.length - 1 ? (\n <text\n key={`${index}-${String(row[chart.xKey] ?? \"\")}`}\n x={\n chart.type === \"bar\"\n ? MARGIN.left + (index + 0.5) * (PLOT_WIDTH / chart.data.length)\n : xForPoint(index)\n }\n y={HEIGHT - 12}\n fill=\"hsl(var(--muted-foreground))\"\n fontSize=\"11\"\n textAnchor=\"middle\"\n >\n {labelFor(row[chart.xKey])}\n </text>\n ) : null,\n )}\n </g>\n );\n\n if (chart.type === \"bar\") {\n const slotWidth = PLOT_WIDTH / Math.max(1, chart.data.length);\n const groupWidth = slotWidth * 0.72;\n const barWidth = groupWidth / Math.max(1, chart.series.length);\n return (\n <>\n {axes}\n {chart.data.map((row, rowIndex) =>\n chart.series.map((series, seriesIndex) => {\n const value = numericValue(row, series.key);\n if (value === null) return null;\n const color =\n series.color ??\n DEFAULT_COLORS[seriesIndex % DEFAULT_COLORS.length];\n const y = yFor(Math.max(value, 0));\n const height = Math.max(1, Math.abs(zeroY - yFor(value)));\n return (\n <rect\n key={`${rowIndex}-${series.key}`}\n x={\n MARGIN.left +\n rowIndex * slotWidth +\n (slotWidth - groupWidth) / 2 +\n seriesIndex * barWidth\n }\n y={y}\n width={Math.max(2, barWidth - 2)}\n height={height}\n rx=\"3\"\n fill={color}\n />\n );\n }),\n )}\n </>\n );\n }\n\n const paths = chart.series.map((series, seriesIndex) => {\n const points = chart.data\n .map((row, rowIndex) => {\n const value = numericValue(row, series.key);\n return value === null\n ? null\n : { x: xForPoint(rowIndex), y: yFor(value) };\n })\n .filter((point): point is { x: number; y: number } => point !== null);\n const color =\n series.color ?? DEFAULT_COLORS[seriesIndex % DEFAULT_COLORS.length];\n const linePath = points\n .map((point, index) => `${index === 0 ? \"M\" : \"L\"} ${point.x} ${point.y}`)\n .join(\" \");\n const areaPath =\n points.length > 0\n ? `${linePath} L ${points[points.length - 1].x} ${zeroY} L ${points[0].x} ${zeroY} Z`\n : \"\";\n return { series, color, linePath, areaPath, points };\n });\n\n return (\n <>\n {axes}\n {paths.map(({ series, color, areaPath }) =>\n chart.type === \"area\" && areaPath ? (\n <path\n key={series.key}\n d={areaPath}\n fill={color}\n opacity=\"0.18\"\n stroke=\"none\"\n />\n ) : null,\n )}\n {paths.map(({ series, color, linePath, points }) => (\n <g key={series.key}>\n <path\n d={linePath}\n fill=\"none\"\n stroke={color}\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n {points.map((point, index) => (\n <circle\n key={index}\n cx={point.x}\n cy={point.y}\n r=\"3\"\n fill=\"hsl(var(--background))\"\n stroke={color}\n strokeWidth=\"2\"\n />\n ))}\n </g>\n ))}\n </>\n );\n}\n\nexport function DataChartRenderer({ chart }: { chart: DataChartWidgetData }) {\n return (\n <div className=\"h-60 w-full min-w-0 overflow-hidden\">\n <svg\n className=\"agent-data-chart-renderer h-full w-full\"\n viewBox={`0 0 ${WIDTH} ${HEIGHT}`}\n role=\"img\"\n aria-label={chart.title ?? \"Data chart\"}\n preserveAspectRatio=\"none\"\n >\n <ChartBody chart={chart} />\n </svg>\n </div>\n );\n}\n"]}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { type ToolRendererContext, type ToolRendererComponent } from "../tool-render-registry.js";
|
|
2
|
+
export declare function isBuiltinDataWidgetActionRenderer(context: ToolRendererContext): boolean;
|
|
3
|
+
export declare function resolveBuiltinActionChatRenderer(context: ToolRendererContext): ToolRendererComponent | null;
|
|
4
|
+
export declare function resolveBuiltinFallbackToolRenderer(context: ToolRendererContext): ToolRendererComponent | null;
|
|
2
5
|
//# sourceMappingURL=builtin-tool-renderers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-tool-renderers.d.ts","sourceRoot":"","sources":["../../../../src/client/chat/widgets/builtin-tool-renderers.tsx"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"builtin-tool-renderers.d.ts","sourceRoot":"","sources":["../../../../src/client/chat/widgets/builtin-tool-renderers.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAiFpC,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAQT;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,mBAAmB,GAC3B,qBAAqB,GAAG,IAAI,CAQ9B;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,mBAAmB,GAC3B,qBAAqB,GAAG,IAAI,CAI9B"}
|
|
@@ -12,9 +12,15 @@ function normalizeActionDataWidgetResult(context) {
|
|
|
12
12
|
const result = normalizeDataWidgetResult(context.resultJson);
|
|
13
13
|
if (result)
|
|
14
14
|
return result;
|
|
15
|
+
const renderer = context.chatUI?.renderer;
|
|
16
|
+
if (renderer === ACTION_CHAT_UI_DATA_WIDGET_RENDERER ||
|
|
17
|
+
context.toolName === "render-data-widget") {
|
|
18
|
+
const argsResult = normalizeDataWidgetResult(context.args);
|
|
19
|
+
if (argsResult)
|
|
20
|
+
return argsResult;
|
|
21
|
+
}
|
|
15
22
|
if (!isRecord(context.resultJson))
|
|
16
23
|
return null;
|
|
17
|
-
const renderer = context.chatUI?.renderer;
|
|
18
24
|
if (renderer === ACTION_CHAT_UI_DATA_TABLE_RENDERER) {
|
|
19
25
|
return normalizeDataWidgetResult({
|
|
20
26
|
widget: DATA_TABLE_WIDGET,
|
|
@@ -62,6 +68,26 @@ function renderDataWidget(context) {
|
|
|
62
68
|
}
|
|
63
69
|
return null;
|
|
64
70
|
}
|
|
71
|
+
const BuiltinDataWidgetRenderer = ({ context }) => renderDataWidget(context);
|
|
72
|
+
export function isBuiltinDataWidgetActionRenderer(context) {
|
|
73
|
+
const renderer = context.chatUI?.renderer;
|
|
74
|
+
return (renderer === ACTION_CHAT_UI_DATA_TABLE_RENDERER ||
|
|
75
|
+
renderer === ACTION_CHAT_UI_DATA_CHART_RENDERER ||
|
|
76
|
+
renderer === ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER ||
|
|
77
|
+
renderer === ACTION_CHAT_UI_DATA_WIDGET_RENDERER);
|
|
78
|
+
}
|
|
79
|
+
export function resolveBuiltinActionChatRenderer(context) {
|
|
80
|
+
if (isBuiltinDataWidgetActionRenderer(context) &&
|
|
81
|
+
normalizeActionDataWidgetResult(context)) {
|
|
82
|
+
return BuiltinDataWidgetRenderer;
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
export function resolveBuiltinFallbackToolRenderer(context) {
|
|
87
|
+
return normalizeActionDataWidgetResult(context) !== null
|
|
88
|
+
? BuiltinDataWidgetRenderer
|
|
89
|
+
: null;
|
|
90
|
+
}
|
|
65
91
|
for (const [id, renderer] of [
|
|
66
92
|
["core.data-table", ACTION_CHAT_UI_DATA_TABLE_RENDERER],
|
|
67
93
|
["core.data-chart", ACTION_CHAT_UI_DATA_CHART_RENDERER],
|
|
@@ -71,12 +97,12 @@ for (const [id, renderer] of [
|
|
|
71
97
|
registerReservedActionChatRenderer({
|
|
72
98
|
id,
|
|
73
99
|
renderer,
|
|
74
|
-
Component:
|
|
100
|
+
Component: BuiltinDataWidgetRenderer,
|
|
75
101
|
});
|
|
76
102
|
}
|
|
77
103
|
registerReservedFallbackToolRenderer({
|
|
78
104
|
id: "core.data-widgets",
|
|
79
|
-
match: (context) =>
|
|
80
|
-
Component:
|
|
105
|
+
match: (context) => normalizeActionDataWidgetResult(context) !== null,
|
|
106
|
+
Component: BuiltinDataWidgetRenderer,
|
|
81
107
|
});
|
|
82
108
|
//# sourceMappingURL=builtin-tool-renderers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-tool-renderers.js","sourceRoot":"","sources":["../../../../src/client/chat/widgets/builtin-tool-renderers.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,GAE1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kCAAkC,EAClC,qCAAqC,EACrC,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,kCAAkC,EAClC,oCAAoC,
|
|
1
|
+
{"version":3,"file":"builtin-tool-renderers.js","sourceRoot":"","sources":["../../../../src/client/chat/widgets/builtin-tool-renderers.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n DATA_CHART_WIDGET,\n DATA_INSIGHTS_WIDGET,\n DATA_TABLE_WIDGET,\n normalizeDataWidgetKind,\n normalizeDataWidgetResult,\n type DataWidgetResult,\n} from \"./data-widget-types.js\";\nimport {\n ACTION_CHAT_UI_DATA_CHART_RENDERER,\n ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER,\n ACTION_CHAT_UI_DATA_TABLE_RENDERER,\n ACTION_CHAT_UI_DATA_WIDGET_RENDERER,\n} from \"../../../action-ui.js\";\nimport { DataChartWidget } from \"./DataChartWidget.js\";\nimport { DataInsightsWidget } from \"./DataInsightsWidget.js\";\nimport { DataTableWidget } from \"./DataTableWidget.js\";\nimport {\n registerReservedActionChatRenderer,\n registerReservedFallbackToolRenderer,\n type ToolRendererContext,\n type ToolRendererComponent,\n} from \"../tool-render-registry.js\";\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction normalizeActionDataWidgetResult(\n context: ToolRendererContext,\n): DataWidgetResult | null {\n const result = normalizeDataWidgetResult(context.resultJson);\n if (result) return result;\n\n const renderer = context.chatUI?.renderer;\n if (\n renderer === ACTION_CHAT_UI_DATA_WIDGET_RENDERER ||\n context.toolName === \"render-data-widget\"\n ) {\n const argsResult = normalizeDataWidgetResult(context.args);\n if (argsResult) return argsResult;\n }\n\n if (!isRecord(context.resultJson)) return null;\n\n if (renderer === ACTION_CHAT_UI_DATA_TABLE_RENDERER) {\n return normalizeDataWidgetResult({\n widget: DATA_TABLE_WIDGET,\n table: isRecord(context.resultJson.table)\n ? context.resultJson.table\n : context.resultJson,\n display: isRecord(context.resultJson.display)\n ? context.resultJson.display\n : undefined,\n });\n }\n if (renderer === ACTION_CHAT_UI_DATA_CHART_RENDERER) {\n return normalizeDataWidgetResult({\n widget: DATA_CHART_WIDGET,\n chartSeries: isRecord(context.resultJson.chartSeries)\n ? context.resultJson.chartSeries\n : context.resultJson,\n display: isRecord(context.resultJson.display)\n ? context.resultJson.display\n : undefined,\n });\n }\n if (renderer === ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER) {\n return normalizeDataWidgetResult({\n ...context.resultJson,\n widget: DATA_INSIGHTS_WIDGET,\n });\n }\n\n return null;\n}\n\nfunction renderDataWidget(context: ToolRendererContext) {\n const result =\n normalizeActionDataWidgetResult(context) ??\n normalizeDataWidgetResult(context.resultJson);\n if (!result) return null;\n const widget = normalizeDataWidgetKind(result.widget);\n if (widget === DATA_TABLE_WIDGET && result.table) {\n return (\n <DataTableWidget\n table={result.table}\n action={result.display?.primaryAction}\n />\n );\n }\n if (widget === DATA_CHART_WIDGET && result.chartSeries) {\n return <DataChartWidget chart={result.chartSeries} />;\n }\n if (widget === DATA_INSIGHTS_WIDGET) {\n return <DataInsightsWidget result={result} />;\n }\n return null;\n}\n\nconst BuiltinDataWidgetRenderer: ToolRendererComponent = ({ context }) =>\n renderDataWidget(context);\n\nexport function isBuiltinDataWidgetActionRenderer(\n context: ToolRendererContext,\n): boolean {\n const renderer = context.chatUI?.renderer;\n return (\n renderer === ACTION_CHAT_UI_DATA_TABLE_RENDERER ||\n renderer === ACTION_CHAT_UI_DATA_CHART_RENDERER ||\n renderer === ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER ||\n renderer === ACTION_CHAT_UI_DATA_WIDGET_RENDERER\n );\n}\n\nexport function resolveBuiltinActionChatRenderer(\n context: ToolRendererContext,\n): ToolRendererComponent | null {\n if (\n isBuiltinDataWidgetActionRenderer(context) &&\n normalizeActionDataWidgetResult(context)\n ) {\n return BuiltinDataWidgetRenderer;\n }\n return null;\n}\n\nexport function resolveBuiltinFallbackToolRenderer(\n context: ToolRendererContext,\n): ToolRendererComponent | null {\n return normalizeActionDataWidgetResult(context) !== null\n ? BuiltinDataWidgetRenderer\n : null;\n}\n\nfor (const [id, renderer] of [\n [\"core.data-table\", ACTION_CHAT_UI_DATA_TABLE_RENDERER],\n [\"core.data-chart\", ACTION_CHAT_UI_DATA_CHART_RENDERER],\n [\"core.data-insights\", ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER],\n [\"core.data-widget\", ACTION_CHAT_UI_DATA_WIDGET_RENDERER],\n] as const) {\n registerReservedActionChatRenderer({\n id,\n renderer,\n Component: BuiltinDataWidgetRenderer,\n });\n}\n\nregisterReservedFallbackToolRenderer({\n id: \"core.data-widgets\",\n match: (context) => normalizeActionDataWidgetResult(context) !== null,\n Component: BuiltinDataWidgetRenderer,\n});\n"]}
|
|
@@ -8,7 +8,7 @@ import { cn } from "../utils.js";
|
|
|
8
8
|
* all render this same frame so the composer does not drift across products.
|
|
9
9
|
*/
|
|
10
10
|
export function AgentComposerFrame({ children, className, rootClassName, style, rootStyle, layoutVariant = "default", onClick, }) {
|
|
11
|
-
return (_jsx("div", { "data-agent-composer-variant": layoutVariant, "data-agent-composer-slot": "area", className: cn("agent-composer-area shrink-0 px-3 py-2", layoutVariant !== "default" && `agent-composer-area--${layoutVariant}`, className), style: style, onClick: onClick, children: _jsx(ComposerPrimitive.Root, { "data-agent-composer-variant": layoutVariant, "data-agent-composer-slot": "root", className: cn("agent-composer-root flex flex-col rounded-lg border border-input bg-
|
|
11
|
+
return (_jsx("div", { "data-agent-composer-variant": layoutVariant, "data-agent-composer-slot": "area", className: cn("agent-composer-area shrink-0 px-3 py-2", layoutVariant !== "default" && `agent-composer-area--${layoutVariant}`, className), style: style, onClick: onClick, children: _jsx(ComposerPrimitive.Root, { "data-agent-composer-variant": layoutVariant, "data-agent-composer-slot": "root", className: cn("agent-composer-root flex flex-col rounded-lg border border-input bg-muted/45 transition-colors focus-within:border-ring", layoutVariant !== "default" &&
|
|
12
12
|
`agent-composer-root--${layoutVariant}`, rootClassName), style: rootStyle, children: children }) }));
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=AgentComposerFrame.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentComposerFrame.js","sourceRoot":"","sources":["../../../src/client/composer/AgentComposerFrame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAajC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,EACT,aAAa,GAAG,SAAS,EACzB,OAAO,GACiB;IACxB,OAAO,CACL,6CAC+B,aAAa,8BACjB,MAAM,EAC/B,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,aAAa,KAAK,SAAS,IAAI,wBAAwB,aAAa,EAAE,EACtE,SAAS,CACV,EACD,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,YAEhB,KAAC,iBAAiB,CAAC,IAAI,mCACQ,aAAa,8BACjB,MAAM,EAC/B,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"AgentComposerFrame.js","sourceRoot":"","sources":["../../../src/client/composer/AgentComposerFrame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAajC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,EACT,aAAa,GAAG,SAAS,EACzB,OAAO,GACiB;IACxB,OAAO,CACL,6CAC+B,aAAa,8BACjB,MAAM,EAC/B,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,aAAa,KAAK,SAAS,IAAI,wBAAwB,aAAa,EAAE,EACtE,SAAS,CACV,EACD,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,YAEhB,KAAC,iBAAiB,CAAC,IAAI,mCACQ,aAAa,8BACjB,MAAM,EAC/B,SAAS,EAAE,EAAE,CACX,yHAAyH,EACzH,aAAa,KAAK,SAAS;gBACzB,wBAAwB,aAAa,EAAE,EACzC,aAAa,CACd,EACD,KAAK,EAAE,SAAS,YAEf,QAAQ,GACc,GACrB,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { ComposerPrimitive } from \"@assistant-ui/react\";\nimport type React from \"react\";\nimport { cn } from \"../utils.js\";\nimport type { AgentComposerLayoutVariant } from \"./types.js\";\n\nexport interface AgentComposerFrameProps {\n children: React.ReactNode;\n className?: string;\n rootClassName?: string;\n style?: React.CSSProperties;\n rootStyle?: React.CSSProperties;\n layoutVariant?: AgentComposerLayoutVariant;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n}\n\n/**\n * The single visual shell for agent chat composition.\n *\n * AssistantChat, PromptComposer, and host surfaces such as Agent-Native Code\n * all render this same frame so the composer does not drift across products.\n */\nexport function AgentComposerFrame({\n children,\n className,\n rootClassName,\n style,\n rootStyle,\n layoutVariant = \"default\",\n onClick,\n}: AgentComposerFrameProps) {\n return (\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"area\"\n className={cn(\n \"agent-composer-area shrink-0 px-3 py-2\",\n layoutVariant !== \"default\" && `agent-composer-area--${layoutVariant}`,\n className,\n )}\n style={style}\n onClick={onClick}\n >\n <ComposerPrimitive.Root\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"root\"\n className={cn(\n \"agent-composer-root flex flex-col rounded-lg border border-input bg-muted/45 transition-colors focus-within:border-ring\",\n layoutVariant !== \"default\" &&\n `agent-composer-root--${layoutVariant}`,\n rootClassName,\n )}\n style={rootStyle}\n >\n {children}\n </ComposerPrimitive.Root>\n </div>\n );\n}\n"]}
|
|
@@ -153,6 +153,23 @@ export interface AgentChatPluginOptions {
|
|
|
153
153
|
* leave this off.
|
|
154
154
|
*/
|
|
155
155
|
leanPrompt?: boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Skip auto-injecting the workspace files/skills/agents inventory on the
|
|
158
|
+
* first message of a conversation while keeping the normal prompt, resources,
|
|
159
|
+
* and tool surface. Use this for domain-focused apps where broad workspace
|
|
160
|
+
* inventory is mostly latency/noise unless the user explicitly references it.
|
|
161
|
+
*
|
|
162
|
+
* `leanPrompt: true` implies this.
|
|
163
|
+
*/
|
|
164
|
+
skipFilesContext?: boolean;
|
|
165
|
+
/**
|
|
166
|
+
* Initial native tool schemas to send to the LLM provider. When set, the
|
|
167
|
+
* agent starts with only these tools plus `tool-search`; the live registry
|
|
168
|
+
* remains searchable, and matching schemas from `tool-search` results are
|
|
169
|
+
* loaded into the next model request. Use this for domain-focused apps that
|
|
170
|
+
* have a few common actions and many rare framework utilities.
|
|
171
|
+
*/
|
|
172
|
+
initialToolNames?: string[];
|
|
156
173
|
/**
|
|
157
174
|
* Use a compact system prompt with on-demand context loading. The system
|
|
158
175
|
* prompt includes essential behavioral rules and action signatures, but
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat-plugin.d.ts","sourceRoot":"","sources":["../../src/server/agent-chat-plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent-chat-plugin.d.ts","sourceRoot":"","sources":["../../src/server/agent-chat-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -2530,6 +2530,7 @@ export function createAgentChatPlugin(options) {
|
|
|
2530
2530
|
const refreshScreenTool = createRefreshScreenEntry();
|
|
2531
2531
|
const frameworkContextTool = createFrameworkContextEntry();
|
|
2532
2532
|
const leanPrompt = options?.leanPrompt === true;
|
|
2533
|
+
const skipFilesContext = leanPrompt || options?.skipFilesContext === true;
|
|
2533
2534
|
const lazyContext = options?.lazyContext !== false && !leanPrompt;
|
|
2534
2535
|
const urlTools = createUrlTools();
|
|
2535
2536
|
const engineScripts = await createAgentEngineScriptEntries(options?.appId);
|
|
@@ -4067,7 +4068,8 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
4067
4068
|
message,
|
|
4068
4069
|
};
|
|
4069
4070
|
},
|
|
4070
|
-
skipFilesContext
|
|
4071
|
+
skipFilesContext,
|
|
4072
|
+
initialToolNames: options?.initialToolNames,
|
|
4071
4073
|
...(options?.toolLimits ? { toolLimits: options.toolLimits } : {}),
|
|
4072
4074
|
onEngineResolved: (engine, model) => {
|
|
4073
4075
|
const runCtx = ensureRequestRunContext();
|
|
@@ -4108,6 +4110,7 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
4108
4110
|
finalResponseGuard: options?.finalResponseGuard,
|
|
4109
4111
|
prepareRequest: options?.prepareRequest,
|
|
4110
4112
|
skipFilesContext: true,
|
|
4113
|
+
initialToolNames: options?.initialToolNames,
|
|
4111
4114
|
onEngineResolved: (engine, model) => {
|
|
4112
4115
|
const runCtx = ensureRequestRunContext();
|
|
4113
4116
|
if (runCtx) {
|
|
@@ -4219,7 +4222,8 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
4219
4222
|
runSoftTimeoutMs: options?.runSoftTimeoutMs,
|
|
4220
4223
|
finalResponseGuard: options?.finalResponseGuard,
|
|
4221
4224
|
prepareRequest: options?.prepareRequest,
|
|
4222
|
-
skipFilesContext
|
|
4225
|
+
skipFilesContext,
|
|
4226
|
+
initialToolNames: options?.initialToolNames,
|
|
4223
4227
|
...(options?.toolLimits ? { toolLimits: options.toolLimits } : {}),
|
|
4224
4228
|
onEngineResolved: (engine, model) => {
|
|
4225
4229
|
const runCtx = ensureRequestRunContext();
|