@yourgpt/copilot-sdk 2.1.7 → 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.
Files changed (33) hide show
  1. package/dist/{chunk-ISOMZAYN.js → chunk-RBULQ6EJ.js} +207 -62
  2. package/dist/chunk-RBULQ6EJ.js.map +1 -0
  3. package/dist/chunk-RPR5GMWF.js +52 -0
  4. package/dist/chunk-RPR5GMWF.js.map +1 -0
  5. package/dist/{chunk-IDAQU3FP.cjs → chunk-TD7NF6OE.cjs} +207 -62
  6. package/dist/chunk-TD7NF6OE.cjs.map +1 -0
  7. package/dist/{chunk-JFVTY757.cjs → chunk-WYFJZNFT.cjs} +16 -16
  8. package/dist/{chunk-JFVTY757.cjs.map → chunk-WYFJZNFT.cjs.map} +1 -1
  9. package/dist/{chunk-H3LX6FTP.js → chunk-XVKKLLKW.js} +3 -3
  10. package/dist/{chunk-H3LX6FTP.js.map → chunk-XVKKLLKW.js.map} +1 -1
  11. package/dist/chunk-YBLAHX2Z.cjs +55 -0
  12. package/dist/chunk-YBLAHX2Z.cjs.map +1 -0
  13. package/dist/experimental/index.cjs +416 -536
  14. package/dist/experimental/index.cjs.map +1 -1
  15. package/dist/experimental/index.d.cts +189 -853
  16. package/dist/experimental/index.d.ts +189 -853
  17. package/dist/experimental/index.js +415 -530
  18. package/dist/experimental/index.js.map +1 -1
  19. package/dist/react/index.cjs +62 -62
  20. package/dist/react/index.d.cts +18 -0
  21. package/dist/react/index.d.ts +18 -0
  22. package/dist/react/index.js +2 -2
  23. package/dist/ui/index.cjs +521 -263
  24. package/dist/ui/index.cjs.map +1 -1
  25. package/dist/ui/index.js +352 -94
  26. package/dist/ui/index.js.map +1 -1
  27. package/package.json +2 -1
  28. package/dist/chunk-5EGBIQYS.cjs +0 -292
  29. package/dist/chunk-5EGBIQYS.cjs.map +0 -1
  30. package/dist/chunk-IDAQU3FP.cjs.map +0 -1
  31. package/dist/chunk-ISOMZAYN.js.map +0 -1
  32. package/dist/chunk-TXQ37MAO.js +0 -287
  33. package/dist/chunk-TXQ37MAO.js.map +0 -1
package/dist/ui/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import { useThreadManager } from '../chunk-H3LX6FTP.js';
1
+ import { useThreadManager } from '../chunk-XVKKLLKW.js';
2
2
  import { DEFAULT_MCP_UI_SANDBOX, parseMCPUIMessage } from '../chunk-G4SF2PNQ.js';
3
- import { cn, Loader, TextShimmerLoader } from '../chunk-TXQ37MAO.js';
4
- export { Loader, cn } from '../chunk-TXQ37MAO.js';
5
- import { useCopilot } from '../chunk-ISOMZAYN.js';
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
- var createHeading = (Tag) => {
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
- isStreaming = false,
57
- linkSafety = { enabled: false }
36
+ size = "md"
58
37
  }) {
59
- return /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx(
60
- Streamdown,
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
- plugins: { code },
63
- isAnimating: isStreaming,
64
- components: headingComponents,
65
- linkSafety,
66
- children
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((entries) => {
1436
- for (const entry of entries) {
1437
- setHeight(entry.contentRect.height);
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 liveExecutions = toolExecutions.filter(
7141
- (exec) => toolCallIds.has(exec.id)
7142
- );
7143
- if (liveExecutions.length > 0) {
7144
- messageToolExecutions = liveExecutions.map(
7145
- (exec) => {
7146
- if (!exec.result && toolResultsMap.has(exec.id)) {
7147
- const resultContent = toolResultsMap.get(exec.id);
7148
- try {
7149
- return { ...exec, result: JSON.parse(resultContent) };
7150
- } catch {
7151
- return {
7152
- ...exec,
7153
- result: { success: false, message: resultContent }
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
- return exec;
7158
- }
7159
- );
7160
- } else {
7161
- const toolCallsHidden = m.metadata?.toolCallsHidden;
7162
- messageToolExecutions = m.toolCalls.map(
7163
- (tc) => {
7164
- const resultContent = toolResultsMap.get(tc.id);
7165
- let result = void 0;
7166
- if (resultContent) {
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
- result = JSON.parse(resultContent);
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
- let args = {};
7174
- try {
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, Markdown, 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 };
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