@yourgpt/copilot-sdk 2.1.8 → 2.1.9-alpha.0
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/{chunk-ISOMZAYN.js → chunk-RBULQ6EJ.js} +207 -62
- package/dist/chunk-RBULQ6EJ.js.map +1 -0
- package/dist/chunk-RPR5GMWF.js +52 -0
- package/dist/chunk-RPR5GMWF.js.map +1 -0
- package/dist/{chunk-IDAQU3FP.cjs → chunk-TD7NF6OE.cjs} +207 -62
- package/dist/chunk-TD7NF6OE.cjs.map +1 -0
- package/dist/{chunk-JFVTY757.cjs → chunk-WYFJZNFT.cjs} +16 -16
- package/dist/{chunk-JFVTY757.cjs.map → chunk-WYFJZNFT.cjs.map} +1 -1
- package/dist/{chunk-H3LX6FTP.js → chunk-XVKKLLKW.js} +3 -3
- package/dist/{chunk-H3LX6FTP.js.map → chunk-XVKKLLKW.js.map} +1 -1
- package/dist/chunk-YBLAHX2Z.cjs +55 -0
- package/dist/chunk-YBLAHX2Z.cjs.map +1 -0
- package/dist/experimental/index.cjs +416 -536
- package/dist/experimental/index.cjs.map +1 -1
- package/dist/experimental/index.d.cts +189 -853
- package/dist/experimental/index.d.ts +189 -853
- package/dist/experimental/index.js +415 -530
- package/dist/experimental/index.js.map +1 -1
- package/dist/react/index.cjs +62 -62
- package/dist/react/index.d.cts +18 -0
- package/dist/react/index.d.ts +18 -0
- package/dist/react/index.js +2 -2
- package/dist/ui/index.cjs +521 -263
- package/dist/ui/index.cjs.map +1 -1
- package/dist/ui/index.js +352 -94
- package/dist/ui/index.js.map +1 -1
- package/package.json +2 -1
- package/dist/chunk-5EGBIQYS.cjs +0 -292
- package/dist/chunk-5EGBIQYS.cjs.map +0 -1
- package/dist/chunk-IDAQU3FP.cjs.map +0 -1
- package/dist/chunk-ISOMZAYN.js.map +0 -1
- package/dist/chunk-TXQ37MAO.js +0 -287
- package/dist/chunk-TXQ37MAO.js.map +0 -1
package/dist/ui/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { useThreadManager } from '../chunk-
|
|
1
|
+
import { useThreadManager } from '../chunk-XVKKLLKW.js';
|
|
2
2
|
import { DEFAULT_MCP_UI_SANDBOX, parseMCPUIMessage } from '../chunk-G4SF2PNQ.js';
|
|
3
|
-
import { cn,
|
|
4
|
-
export {
|
|
5
|
-
import { useCopilot } from '../chunk-
|
|
3
|
+
import { cn, Markdown } from '../chunk-RPR5GMWF.js';
|
|
4
|
+
export { Markdown, cn } from '../chunk-RPR5GMWF.js';
|
|
5
|
+
import { useCopilot } from '../chunk-RBULQ6EJ.js';
|
|
6
6
|
import { createLocalStorageAdapter, createServerAdapter } from '../chunk-J5D3AZF6.js';
|
|
7
7
|
import '../chunk-EWVQWTNV.js';
|
|
8
8
|
import '../chunk-VNLLW3ZI.js';
|
|
@@ -18,11 +18,9 @@ import '../chunk-DABZYCVX.js';
|
|
|
18
18
|
import '../chunk-MNDGIW47.js';
|
|
19
19
|
import '../chunk-VD74IPKB.js';
|
|
20
20
|
import '../chunk-DGUM43GV.js';
|
|
21
|
-
import * as React19 from 'react';
|
|
22
|
-
import React19__default, { memo, createContext, useState, useRef, useId, useCallback, useMemo, useLayoutEffect, useContext, useReducer, useEffect } from 'react';
|
|
23
|
-
import { Streamdown } from 'streamdown';
|
|
24
|
-
import { code } from '@streamdown/code';
|
|
25
21
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
22
|
+
import * as React19 from 'react';
|
|
23
|
+
import React19__default, { createContext, useState, useRef, useId, useCallback, useMemo, useLayoutEffect, useContext, useReducer, useEffect } from 'react';
|
|
26
24
|
import { Slot } from '@radix-ui/react-slot';
|
|
27
25
|
import { cva } from 'class-variance-authority';
|
|
28
26
|
import { StickToBottom as StickToBottom$1, useStickToBottomContext } from 'use-stick-to-bottom';
|
|
@@ -33,42 +31,281 @@ import { Globe, ChevronUp, ChevronDown, ExternalLink } from 'lucide-react';
|
|
|
33
31
|
import { Popover as Popover$1 } from '@base-ui/react/popover';
|
|
34
32
|
import * as ReactDOM from 'react-dom';
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
const HeadingComponent = ({
|
|
38
|
-
children,
|
|
39
|
-
className: _,
|
|
40
|
-
...props
|
|
41
|
-
}) => /* @__PURE__ */ jsx(Tag, { className: "text-[1em] font-semibold my-2 first:mt-0", ...props, children });
|
|
42
|
-
HeadingComponent.displayName = Tag.toUpperCase();
|
|
43
|
-
return HeadingComponent;
|
|
44
|
-
};
|
|
45
|
-
var headingComponents = {
|
|
46
|
-
h1: createHeading("h1"),
|
|
47
|
-
h2: createHeading("h2"),
|
|
48
|
-
h3: createHeading("h3"),
|
|
49
|
-
h4: createHeading("h4"),
|
|
50
|
-
h5: createHeading("h5"),
|
|
51
|
-
h6: createHeading("h6")
|
|
52
|
-
};
|
|
53
|
-
function MarkdownComponent({
|
|
54
|
-
children,
|
|
34
|
+
function DotsLoader({
|
|
55
35
|
className,
|
|
56
|
-
|
|
57
|
-
linkSafety = { enabled: false }
|
|
36
|
+
size = "md"
|
|
58
37
|
}) {
|
|
59
|
-
|
|
60
|
-
|
|
38
|
+
const dotSizes = {
|
|
39
|
+
sm: "h-1 w-1",
|
|
40
|
+
md: "h-1.5 w-1.5",
|
|
41
|
+
lg: "h-2 w-2"
|
|
42
|
+
};
|
|
43
|
+
const containerSizes = {
|
|
44
|
+
sm: "h-4",
|
|
45
|
+
md: "h-5",
|
|
46
|
+
lg: "h-6"
|
|
47
|
+
};
|
|
48
|
+
return /* @__PURE__ */ jsxs(
|
|
49
|
+
"div",
|
|
61
50
|
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
className: cn(
|
|
52
|
+
"flex items-center translate-y-[-2px] space-x-1",
|
|
53
|
+
containerSizes[size],
|
|
54
|
+
className
|
|
55
|
+
),
|
|
56
|
+
children: [
|
|
57
|
+
[...Array(3)].map((_, i) => /* @__PURE__ */ jsx(
|
|
58
|
+
"div",
|
|
59
|
+
{
|
|
60
|
+
className: cn(
|
|
61
|
+
"bg-primary csdk-loader-bounce-dots rounded-full",
|
|
62
|
+
dotSizes[size]
|
|
63
|
+
),
|
|
64
|
+
style: {
|
|
65
|
+
animationDelay: `${i * 160}ms`
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
i
|
|
69
|
+
)),
|
|
70
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading" })
|
|
71
|
+
]
|
|
67
72
|
}
|
|
68
|
-
)
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
function TypingLoader({
|
|
76
|
+
className,
|
|
77
|
+
size = "md"
|
|
78
|
+
}) {
|
|
79
|
+
const dotSizes = {
|
|
80
|
+
sm: "h-1 w-1",
|
|
81
|
+
md: "h-1.5 w-1.5",
|
|
82
|
+
lg: "h-2 w-2"
|
|
83
|
+
};
|
|
84
|
+
const containerSizes = {
|
|
85
|
+
sm: "h-4",
|
|
86
|
+
md: "h-5",
|
|
87
|
+
lg: "h-6"
|
|
88
|
+
};
|
|
89
|
+
return /* @__PURE__ */ jsxs(
|
|
90
|
+
"div",
|
|
91
|
+
{
|
|
92
|
+
className: cn(
|
|
93
|
+
"flex items-center space-x-1",
|
|
94
|
+
containerSizes[size],
|
|
95
|
+
className
|
|
96
|
+
),
|
|
97
|
+
children: [
|
|
98
|
+
[...Array(3)].map((_, i) => /* @__PURE__ */ jsx(
|
|
99
|
+
"div",
|
|
100
|
+
{
|
|
101
|
+
className: cn(
|
|
102
|
+
"bg-primary csdk-loader-typing rounded-full",
|
|
103
|
+
dotSizes[size]
|
|
104
|
+
),
|
|
105
|
+
style: {
|
|
106
|
+
animationDelay: `${i * 250}ms`
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
i
|
|
110
|
+
)),
|
|
111
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading" })
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
function WaveLoader({
|
|
117
|
+
className,
|
|
118
|
+
size = "md"
|
|
119
|
+
}) {
|
|
120
|
+
const barWidths = {
|
|
121
|
+
sm: "w-0.5",
|
|
122
|
+
md: "w-0.5",
|
|
123
|
+
lg: "w-1"
|
|
124
|
+
};
|
|
125
|
+
const containerSizes = {
|
|
126
|
+
sm: "h-4",
|
|
127
|
+
md: "h-5",
|
|
128
|
+
lg: "h-6"
|
|
129
|
+
};
|
|
130
|
+
const heights = {
|
|
131
|
+
sm: ["6px", "9px", "12px", "9px", "6px"],
|
|
132
|
+
md: ["8px", "12px", "16px", "12px", "8px"],
|
|
133
|
+
lg: ["10px", "15px", "20px", "15px", "10px"]
|
|
134
|
+
};
|
|
135
|
+
return /* @__PURE__ */ jsxs(
|
|
136
|
+
"div",
|
|
137
|
+
{
|
|
138
|
+
className: cn(
|
|
139
|
+
"flex items-center gap-0.5",
|
|
140
|
+
containerSizes[size],
|
|
141
|
+
className
|
|
142
|
+
),
|
|
143
|
+
children: [
|
|
144
|
+
[...Array(5)].map((_, i) => /* @__PURE__ */ jsx(
|
|
145
|
+
"div",
|
|
146
|
+
{
|
|
147
|
+
className: cn(
|
|
148
|
+
"bg-primary csdk-loader-wave rounded-full",
|
|
149
|
+
barWidths[size]
|
|
150
|
+
),
|
|
151
|
+
style: {
|
|
152
|
+
animationDelay: `${i * 100}ms`,
|
|
153
|
+
height: heights[size][i]
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
i
|
|
157
|
+
)),
|
|
158
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading" })
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
function TerminalLoader({
|
|
164
|
+
className,
|
|
165
|
+
size = "md"
|
|
166
|
+
}) {
|
|
167
|
+
const cursorSizes = {
|
|
168
|
+
sm: "h-3 w-1.5",
|
|
169
|
+
md: "h-4 w-2",
|
|
170
|
+
lg: "h-5 w-2.5"
|
|
171
|
+
};
|
|
172
|
+
const textSizes = {
|
|
173
|
+
sm: "text-xs",
|
|
174
|
+
md: "text-sm",
|
|
175
|
+
lg: "text-base"
|
|
176
|
+
};
|
|
177
|
+
const containerSizes = {
|
|
178
|
+
sm: "h-4",
|
|
179
|
+
md: "h-5",
|
|
180
|
+
lg: "h-6"
|
|
181
|
+
};
|
|
182
|
+
return /* @__PURE__ */ jsxs(
|
|
183
|
+
"div",
|
|
184
|
+
{
|
|
185
|
+
className: cn(
|
|
186
|
+
"flex items-center space-x-1",
|
|
187
|
+
containerSizes[size],
|
|
188
|
+
className
|
|
189
|
+
),
|
|
190
|
+
children: [
|
|
191
|
+
/* @__PURE__ */ jsx("span", { className: cn("text-primary font-mono", textSizes[size]), children: ">" }),
|
|
192
|
+
/* @__PURE__ */ jsx("div", { className: cn("bg-primary csdk-loader-blink", cursorSizes[size]) }),
|
|
193
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading" })
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
function TextBlinkLoader({
|
|
199
|
+
text = "Thinking",
|
|
200
|
+
className,
|
|
201
|
+
size = "md"
|
|
202
|
+
}) {
|
|
203
|
+
const textSizes = {
|
|
204
|
+
sm: "text-xs",
|
|
205
|
+
md: "text-sm",
|
|
206
|
+
lg: "text-base"
|
|
207
|
+
};
|
|
208
|
+
return /* @__PURE__ */ jsx(
|
|
209
|
+
"div",
|
|
210
|
+
{
|
|
211
|
+
className: cn(
|
|
212
|
+
"csdk-loader-text-blink font-medium",
|
|
213
|
+
textSizes[size],
|
|
214
|
+
className
|
|
215
|
+
),
|
|
216
|
+
children: text
|
|
217
|
+
}
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
function TextShimmerLoader({
|
|
221
|
+
text = "Thinking",
|
|
222
|
+
className,
|
|
223
|
+
size = "md"
|
|
224
|
+
}) {
|
|
225
|
+
const textSizes = {
|
|
226
|
+
sm: "text-xs",
|
|
227
|
+
md: "text-sm",
|
|
228
|
+
lg: "text-base"
|
|
229
|
+
};
|
|
230
|
+
return /* @__PURE__ */ jsx(
|
|
231
|
+
"div",
|
|
232
|
+
{
|
|
233
|
+
className: cn(
|
|
234
|
+
"bg-[linear-gradient(to_right,var(--muted-foreground)_40%,var(--foreground)_60%,var(--muted-foreground)_80%)]",
|
|
235
|
+
"bg-[length:200%_auto] bg-clip-text font-medium text-transparent",
|
|
236
|
+
"csdk-loader-shimmer",
|
|
237
|
+
textSizes[size],
|
|
238
|
+
className
|
|
239
|
+
),
|
|
240
|
+
children: text
|
|
241
|
+
}
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
function TextDotsLoader({
|
|
245
|
+
className,
|
|
246
|
+
text = "Thinking",
|
|
247
|
+
size = "md"
|
|
248
|
+
}) {
|
|
249
|
+
const textSizes = {
|
|
250
|
+
sm: "text-xs",
|
|
251
|
+
md: "text-sm",
|
|
252
|
+
lg: "text-base"
|
|
253
|
+
};
|
|
254
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("inline-flex items-center", className), children: [
|
|
255
|
+
/* @__PURE__ */ jsx("span", { className: cn("text-primary font-medium", textSizes[size]), children: text }),
|
|
256
|
+
/* @__PURE__ */ jsxs("span", { className: "inline-flex", children: [
|
|
257
|
+
/* @__PURE__ */ jsx(
|
|
258
|
+
"span",
|
|
259
|
+
{
|
|
260
|
+
className: "text-primary csdk-loader-loading-dots",
|
|
261
|
+
style: { animationDelay: "0.2s" },
|
|
262
|
+
children: "."
|
|
263
|
+
}
|
|
264
|
+
),
|
|
265
|
+
/* @__PURE__ */ jsx(
|
|
266
|
+
"span",
|
|
267
|
+
{
|
|
268
|
+
className: "text-primary csdk-loader-loading-dots",
|
|
269
|
+
style: { animationDelay: "0.4s" },
|
|
270
|
+
children: "."
|
|
271
|
+
}
|
|
272
|
+
),
|
|
273
|
+
/* @__PURE__ */ jsx(
|
|
274
|
+
"span",
|
|
275
|
+
{
|
|
276
|
+
className: "text-primary csdk-loader-loading-dots",
|
|
277
|
+
style: { animationDelay: "0.6s" },
|
|
278
|
+
children: "."
|
|
279
|
+
}
|
|
280
|
+
)
|
|
281
|
+
] })
|
|
282
|
+
] });
|
|
283
|
+
}
|
|
284
|
+
function Loader({
|
|
285
|
+
variant = "typing",
|
|
286
|
+
size = "md",
|
|
287
|
+
text,
|
|
288
|
+
className
|
|
289
|
+
}) {
|
|
290
|
+
switch (variant) {
|
|
291
|
+
case "dots":
|
|
292
|
+
return /* @__PURE__ */ jsx(DotsLoader, { size, className });
|
|
293
|
+
case "typing":
|
|
294
|
+
return /* @__PURE__ */ jsx(TypingLoader, { size, className });
|
|
295
|
+
case "wave":
|
|
296
|
+
return /* @__PURE__ */ jsx(WaveLoader, { size, className });
|
|
297
|
+
case "terminal":
|
|
298
|
+
return /* @__PURE__ */ jsx(TerminalLoader, { size, className });
|
|
299
|
+
case "text-blink":
|
|
300
|
+
return /* @__PURE__ */ jsx(TextBlinkLoader, { text, size, className });
|
|
301
|
+
case "text-shimmer":
|
|
302
|
+
return /* @__PURE__ */ jsx(TextShimmerLoader, { text, size, className });
|
|
303
|
+
case "loading-dots":
|
|
304
|
+
return /* @__PURE__ */ jsx(TextDotsLoader, { text, size, className });
|
|
305
|
+
default:
|
|
306
|
+
return /* @__PURE__ */ jsx(TypingLoader, { size, className });
|
|
307
|
+
}
|
|
69
308
|
}
|
|
70
|
-
var Markdown = memo(MarkdownComponent);
|
|
71
|
-
Markdown.displayName = "Markdown";
|
|
72
309
|
function CodeBlock({ children, className, ...props }) {
|
|
73
310
|
return /* @__PURE__ */ jsx(
|
|
74
311
|
"div",
|
|
@@ -1432,9 +1669,9 @@ function ReasoningContent({
|
|
|
1432
1669
|
const [height, setHeight] = React19.useState(0);
|
|
1433
1670
|
React19.useEffect(() => {
|
|
1434
1671
|
if (contentRef.current) {
|
|
1435
|
-
const resizeObserver = new ResizeObserver((
|
|
1436
|
-
|
|
1437
|
-
setHeight(
|
|
1672
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
1673
|
+
if (contentRef.current) {
|
|
1674
|
+
setHeight(contentRef.current.offsetHeight);
|
|
1438
1675
|
}
|
|
1439
1676
|
});
|
|
1440
1677
|
resizeObserver.observe(contentRef.current);
|
|
@@ -1455,7 +1692,7 @@ function ReasoningContent({
|
|
|
1455
1692
|
{
|
|
1456
1693
|
ref: contentRef,
|
|
1457
1694
|
className: cn(
|
|
1458
|
-
"mt-1 pl-3 border-l-2 border-muted-foreground/20",
|
|
1695
|
+
"mt-1 pl-3 pb-2 border-l-2 border-muted-foreground/20",
|
|
1459
1696
|
"text-xs text-muted-foreground",
|
|
1460
1697
|
className
|
|
1461
1698
|
),
|
|
@@ -7137,68 +7374,88 @@ function CopilotChatBase(props) {
|
|
|
7137
7374
|
const toolCallIds = new Set(
|
|
7138
7375
|
m.toolCalls.map((tc) => tc.id)
|
|
7139
7376
|
);
|
|
7140
|
-
const
|
|
7141
|
-
|
|
7142
|
-
)
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
|
|
7148
|
-
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
|
|
7152
|
-
|
|
7153
|
-
|
|
7154
|
-
|
|
7377
|
+
const isLastMsg = m.id === [...messages].reverse().find((msg) => msg.role === "assistant")?.id;
|
|
7378
|
+
const savedMeta = m.metadata?.toolExecutions;
|
|
7379
|
+
if (!isLastMsg && savedMeta && savedMeta.length > 0) {
|
|
7380
|
+
messageToolExecutions = savedMeta;
|
|
7381
|
+
} else {
|
|
7382
|
+
const liveExecutions = isLastMsg ? toolExecutions.filter(
|
|
7383
|
+
(exec) => toolCallIds.has(exec.id)
|
|
7384
|
+
) : [];
|
|
7385
|
+
if (liveExecutions.length > 0) {
|
|
7386
|
+
messageToolExecutions = liveExecutions.map(
|
|
7387
|
+
(exec) => {
|
|
7388
|
+
if (!exec.result && toolResultsMap.has(exec.id)) {
|
|
7389
|
+
const resultContent = toolResultsMap.get(exec.id);
|
|
7390
|
+
try {
|
|
7391
|
+
return { ...exec, result: JSON.parse(resultContent) };
|
|
7392
|
+
} catch {
|
|
7393
|
+
return {
|
|
7394
|
+
...exec,
|
|
7395
|
+
result: { success: false, message: resultContent }
|
|
7396
|
+
};
|
|
7397
|
+
}
|
|
7155
7398
|
}
|
|
7399
|
+
return exec;
|
|
7156
7400
|
}
|
|
7157
|
-
|
|
7158
|
-
|
|
7159
|
-
|
|
7160
|
-
|
|
7161
|
-
|
|
7162
|
-
|
|
7163
|
-
|
|
7164
|
-
|
|
7165
|
-
|
|
7166
|
-
|
|
7401
|
+
);
|
|
7402
|
+
} else {
|
|
7403
|
+
const toolCallsHidden = m.metadata?.toolCallsHidden;
|
|
7404
|
+
messageToolExecutions = m.toolCalls.map(
|
|
7405
|
+
(tc) => {
|
|
7406
|
+
const resultContent = toolResultsMap.get(tc.id);
|
|
7407
|
+
let result = void 0;
|
|
7408
|
+
if (resultContent) {
|
|
7409
|
+
try {
|
|
7410
|
+
result = JSON.parse(resultContent);
|
|
7411
|
+
} catch {
|
|
7412
|
+
result = { success: false, message: resultContent };
|
|
7413
|
+
}
|
|
7414
|
+
}
|
|
7415
|
+
let args = {};
|
|
7167
7416
|
try {
|
|
7168
|
-
|
|
7417
|
+
args = JSON.parse(tc.function.arguments || "{}");
|
|
7169
7418
|
} catch {
|
|
7170
|
-
result = { success: false, message: resultContent };
|
|
7171
7419
|
}
|
|
7420
|
+
let hidden = toolCallsHidden?.[tc.id];
|
|
7421
|
+
if (hidden === void 0) {
|
|
7422
|
+
const toolDef = registeredTools?.find(
|
|
7423
|
+
(t) => t.name === tc.function.name
|
|
7424
|
+
);
|
|
7425
|
+
hidden = toolDef?.hidden;
|
|
7426
|
+
}
|
|
7427
|
+
return {
|
|
7428
|
+
id: tc.id,
|
|
7429
|
+
name: tc.function.name,
|
|
7430
|
+
args,
|
|
7431
|
+
status: result ? "completed" : "pending",
|
|
7432
|
+
result,
|
|
7433
|
+
timestamp: m.createdAt instanceof Date ? m.createdAt.getTime() : Date.now(),
|
|
7434
|
+
hidden
|
|
7435
|
+
};
|
|
7172
7436
|
}
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
args = JSON.parse(tc.function.arguments || "{}");
|
|
7176
|
-
} catch {
|
|
7177
|
-
}
|
|
7178
|
-
let hidden = toolCallsHidden?.[tc.id];
|
|
7179
|
-
if (hidden === void 0) {
|
|
7180
|
-
const toolDef = registeredTools?.find(
|
|
7181
|
-
(t) => t.name === tc.function.name
|
|
7182
|
-
);
|
|
7183
|
-
hidden = toolDef?.hidden;
|
|
7184
|
-
}
|
|
7185
|
-
return {
|
|
7186
|
-
id: tc.id,
|
|
7187
|
-
name: tc.function.name,
|
|
7188
|
-
args,
|
|
7189
|
-
status: result ? "completed" : "pending",
|
|
7190
|
-
result,
|
|
7191
|
-
timestamp: m.createdAt instanceof Date ? m.createdAt.getTime() : Date.now(),
|
|
7192
|
-
hidden
|
|
7193
|
-
};
|
|
7194
|
-
}
|
|
7195
|
-
);
|
|
7437
|
+
);
|
|
7438
|
+
}
|
|
7196
7439
|
}
|
|
7197
7440
|
}
|
|
7198
7441
|
const savedExecutions = m.metadata?.toolExecutions;
|
|
7199
7442
|
if (savedExecutions && savedExecutions.length > 0 && !messageToolExecutions) {
|
|
7200
7443
|
messageToolExecutions = savedExecutions;
|
|
7201
7444
|
}
|
|
7445
|
+
const isLastAssistant = m.id === [...messages].reverse().find((msg) => msg.role === "assistant")?.id;
|
|
7446
|
+
if (isLastAssistant && !messageToolExecutions && m.role === "assistant" && isLoading && toolExecutions.length > 0) {
|
|
7447
|
+
const allMatchedIds = new Set(
|
|
7448
|
+
messages.filter((msg) => msg.toolCalls).flatMap(
|
|
7449
|
+
(msg) => (msg.toolCalls || []).map((tc) => tc.id)
|
|
7450
|
+
)
|
|
7451
|
+
);
|
|
7452
|
+
const unmatchedExecutions = toolExecutions.filter(
|
|
7453
|
+
(exec) => !allMatchedIds.has(exec.id) && (exec.status === "executing" || exec.status === "pending" || exec.approvalStatus === "required")
|
|
7454
|
+
);
|
|
7455
|
+
if (unmatchedExecutions.length > 0) {
|
|
7456
|
+
messageToolExecutions = unmatchedExecutions;
|
|
7457
|
+
}
|
|
7458
|
+
}
|
|
7202
7459
|
const visibleToolExecutions = messageToolExecutions?.filter(
|
|
7203
7460
|
(exec) => !exec.hidden
|
|
7204
7461
|
);
|
|
@@ -7219,6 +7476,7 @@ function CopilotChatBase(props) {
|
|
|
7219
7476
|
_hasOnlyHiddenTools: messageToolExecutions && messageToolExecutions.length > 0 && (!visibleToolExecutions || visibleToolExecutions.length === 0)
|
|
7220
7477
|
};
|
|
7221
7478
|
}).filter((m) => {
|
|
7479
|
+
if (!m) return false;
|
|
7222
7480
|
if (m.role === "assistant" && !m.content && m._hasOnlyHiddenTools) {
|
|
7223
7481
|
return false;
|
|
7224
7482
|
}
|
|
@@ -7938,6 +8196,6 @@ var ChatPrimitives = {
|
|
|
7938
8196
|
Loader
|
|
7939
8197
|
};
|
|
7940
8198
|
|
|
7941
|
-
export { AlertTriangleIcon, AttachmentStrip, BotIcon, BranchNavigator, Button, CapabilityBadge, CapabilityList, Chat, ChatContainerContent, ChatContainerRoot, ChatContainerScrollAnchor, ChatPrimitives, ChatWelcome, CheckIcon, ChevronDownIcon2 as ChevronDownIcon, ChevronLeftIcon, ChevronUpIcon, CitationBadge, CitationSuperscript, CloseIcon, CodeBlock, CompactPermissionConfirmation, Confirmation, ConfirmationActions, ConfirmationApproved, ConfirmationMessage, ConfirmationPending, ConfirmationRejected, ConnectedChat, CopilotChat, CopilotUIProvider, CopyIcon, DEFAULT_PERMISSION_OPTIONS, DevLogger, DropZoneOverlay, FeedbackBar, FollowUpQuestions, InlineToolSteps, MCPUIFrame, MCPUIFrameList,
|
|
8199
|
+
export { AlertTriangleIcon, AttachmentStrip, BotIcon, BranchNavigator, Button, CapabilityBadge, CapabilityList, Chat, ChatContainerContent, ChatContainerRoot, ChatContainerScrollAnchor, ChatPrimitives, ChatWelcome, CheckIcon, ChevronDownIcon2 as ChevronDownIcon, ChevronLeftIcon, ChevronUpIcon, CitationBadge, CitationSuperscript, CloseIcon, CodeBlock, CompactPermissionConfirmation, Confirmation, ConfirmationActions, ConfirmationApproved, ConfirmationMessage, ConfirmationPending, ConfirmationRejected, ConnectedChat, CopilotChat, CopilotUIProvider, CopyIcon, DEFAULT_PERMISSION_OPTIONS, DevLogger, DropZoneOverlay, FeedbackBar, FollowUpQuestions, InlineToolSteps, Loader, MCPUIFrame, MCPUIFrameList, MessageAvatar, MessageContent, Message as MessagePrimitive, MessageWithCitations, ModelSelector, PermissionConfirmation, PoweredBy, PromptInput, PromptInputAction, PromptInputActions, PromptInputTextarea, Reasoning, ReasoningContent, ReasoningTrigger, RefreshIcon, ScrollButton, SearchAnswer, SearchResults, SearchResultsWithAnswer, SendIcon, SimpleConfirmation, SimpleModelSelector, SimpleReasoning, SimpleSource, Source, SourceContent, SourceGroup, SourcePill, SourceTrigger, SourcesBar, SourcesCollapsible, SourcesList, StopIcon, ThreadCard, ThreadList, ThreadPicker, ThumbsDownIcon2 as ThumbsDownIcon, ThumbsUpIcon2 as ThumbsUpIcon, ToolExecutionMessage, ToolStep, ToolSteps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserIcon, XIcon2 as XIcon, annotationsToCitations, parseFollowUps, resultsToCitations, useAttachments, useChatContainer, useCopilotChatContext, useCopilotUI };
|
|
7942
8200
|
//# sourceMappingURL=index.js.map
|
|
7943
8201
|
//# sourceMappingURL=index.js.map
|