@copilotkit/react-core 1.56.3 → 1.56.4-canary.1777529757

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.
@@ -16,8 +16,8 @@ import { z } from "zod";
16
16
  import { createComponent } from "@lit-labs/react";
17
17
  import { A2UIProvider, A2UIRenderer, A2UI_SCHEMA_CONTEXT_DESCRIPTION, DEFAULT_SURFACE_ID, buildCatalogContextValue, extractCatalogComponentSchemas, initializeDefaultCatalog, injectStyles, useA2UIActions, useA2UIError, viewerTheme } from "@copilotkit/a2ui-renderer";
18
18
  import { zodToJsonSchema } from "zod-to-json-schema";
19
- import { useVirtualizer } from "@tanstack/react-virtual";
20
19
  import { createPortal, flushSync } from "react-dom";
20
+ import { useVirtualizer } from "@tanstack/react-virtual";
21
21
  import { StickToBottom, useStickToBottomContext } from "use-stick-to-bottom";
22
22
  import ReactMarkdown from "react-markdown";
23
23
 
@@ -5006,20 +5006,101 @@ CopilotChatAssistantMessage.ReadAloudButton.displayName = "CopilotChatAssistantM
5006
5006
  CopilotChatAssistantMessage.RegenerateButton.displayName = "CopilotChatAssistantMessage.RegenerateButton";
5007
5007
  var CopilotChatAssistantMessage_default = CopilotChatAssistantMessage;
5008
5008
 
5009
+ //#endregion
5010
+ //#region src/v2/components/chat/Lightbox.tsx
5011
+ function Lightbox({ onClose, children }) {
5012
+ useEffect(() => {
5013
+ const handleKey = (e) => {
5014
+ if (e.key === "Escape") onClose();
5015
+ };
5016
+ document.addEventListener("keydown", handleKey);
5017
+ return () => document.removeEventListener("keydown", handleKey);
5018
+ }, [onClose]);
5019
+ if (typeof document === "undefined") return null;
5020
+ return createPortal(/* @__PURE__ */ jsxs("div", {
5021
+ className: "cpk:fixed cpk:inset-0 cpk:z-[9999] cpk:flex cpk:items-center cpk:justify-center cpk:bg-black/80 cpk:animate-fade-in",
5022
+ onClick: onClose,
5023
+ children: [/* @__PURE__ */ jsx("button", {
5024
+ onClick: onClose,
5025
+ className: "cpk:absolute cpk:top-4 cpk:right-4 cpk:text-white cpk:bg-white/10 cpk:hover:bg-white/20 cpk:rounded-full cpk:w-10 cpk:h-10 cpk:flex cpk:items-center cpk:justify-center cpk:cursor-pointer cpk:border-none cpk:z-10",
5026
+ "aria-label": "Close preview",
5027
+ children: /* @__PURE__ */ jsx(X, { className: "cpk:w-5 cpk:h-5" })
5028
+ }), /* @__PURE__ */ jsx("div", {
5029
+ onClick: (e) => e.stopPropagation(),
5030
+ children
5031
+ })]
5032
+ }), document.body);
5033
+ }
5034
+ /**
5035
+ * Hook that manages lightbox open/close and uses the View Transition API to
5036
+ * morph the thumbnail into fullscreen content.
5037
+ *
5038
+ * The trick: `view-transition-name` must live on exactly ONE element at a time.
5039
+ * - Old state (thumbnail visible): name is on the thumbnail.
5040
+ * - New state (lightbox visible): name moves to the lightbox content.
5041
+ * `flushSync` ensures React commits the DOM change synchronously inside the
5042
+ * `startViewTransition` callback so the API can snapshot old → new correctly.
5043
+ */
5044
+ function useLightbox() {
5045
+ const thumbnailRef = useRef(null);
5046
+ const [open, setOpen] = useState(false);
5047
+ const vtName = useId();
5048
+ return {
5049
+ thumbnailRef,
5050
+ vtName,
5051
+ open,
5052
+ openLightbox: useCallback(() => {
5053
+ const thumb = thumbnailRef.current;
5054
+ const doc = document;
5055
+ if (doc.startViewTransition && thumb) {
5056
+ thumb.style.viewTransitionName = vtName;
5057
+ doc.startViewTransition(() => {
5058
+ thumb.style.viewTransitionName = "";
5059
+ flushSync(() => setOpen(true));
5060
+ });
5061
+ } else setOpen(true);
5062
+ }, [vtName]),
5063
+ closeLightbox: useCallback(() => {
5064
+ const thumb = thumbnailRef.current;
5065
+ const doc = document;
5066
+ if (doc.startViewTransition && thumb) doc.startViewTransition(() => {
5067
+ flushSync(() => setOpen(false));
5068
+ thumb.style.viewTransitionName = vtName;
5069
+ }).finished.then(() => {
5070
+ thumb.style.viewTransitionName = "";
5071
+ }).catch(() => {
5072
+ thumb.style.viewTransitionName = "";
5073
+ });
5074
+ else setOpen(false);
5075
+ }, [vtName])
5076
+ };
5077
+ }
5078
+
5009
5079
  //#endregion
5010
5080
  //#region src/v2/components/chat/CopilotChatAttachmentRenderer.tsx
5011
5081
  const ImageAttachment = memo(function ImageAttachment({ src, className }) {
5012
5082
  const [error, setError] = useState(false);
5083
+ const { thumbnailRef, vtName, open, openLightbox, closeLightbox } = useLightbox();
5013
5084
  if (error) return /* @__PURE__ */ jsx("div", {
5014
5085
  className: cn("cpk:flex cpk:flex-col cpk:items-center cpk:justify-center cpk:rounded-lg cpk:bg-muted cpk:p-4 cpk:text-sm cpk:text-muted-foreground", className),
5015
5086
  children: /* @__PURE__ */ jsx("span", { children: "Failed to load image" })
5016
5087
  });
5017
- return /* @__PURE__ */ jsx("img", {
5088
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("img", {
5089
+ ref: thumbnailRef,
5018
5090
  src,
5019
5091
  alt: "Image attachment",
5020
- className: cn("cpk:max-w-full cpk:h-auto cpk:rounded-lg", className),
5092
+ className: cn("cpk:max-w-[80px] cpk:max-h-[80px] cpk:w-auto cpk:h-auto cpk:rounded-xl cpk:object-cover cpk:cursor-pointer cpk:bg-muted", className),
5093
+ onClick: openLightbox,
5021
5094
  onError: () => setError(true)
5022
- });
5095
+ }), open && /* @__PURE__ */ jsx(Lightbox, {
5096
+ onClose: closeLightbox,
5097
+ children: /* @__PURE__ */ jsx("img", {
5098
+ style: { viewTransitionName: vtName },
5099
+ src,
5100
+ alt: "Image attachment",
5101
+ className: "cpk:max-w-[90vw] cpk:max-h-[90vh] cpk:object-contain cpk:rounded-lg"
5102
+ })
5103
+ })] });
5023
5104
  });
5024
5105
  const AudioAttachment = memo(function AudioAttachment({ src, filename, className }) {
5025
5106
  return /* @__PURE__ */ jsxs("div", {
@@ -5144,15 +5225,15 @@ function CopilotChatUserMessage({ message, onEditMessage, branchIndex, numberOfB
5144
5225
  "data-message-id": message.id,
5145
5226
  ...props,
5146
5227
  children: [
5147
- BoundMessageRenderer,
5148
5228
  mediaParts.length > 0 && /* @__PURE__ */ jsx("div", {
5149
- className: "cpk:flex cpk:flex-col cpk:items-end cpk:gap-2 cpk:mt-2",
5229
+ className: "cpk:flex cpk:flex-row cpk:flex-wrap cpk:justify-end cpk:gap-2 cpk:mb-2",
5150
5230
  children: mediaParts.map((part, index) => /* @__PURE__ */ jsx(CopilotChatAttachmentRenderer, {
5151
5231
  type: part.type,
5152
5232
  source: part.source,
5153
5233
  filename: getFilename(part)
5154
5234
  }, index))
5155
5235
  }),
5236
+ BoundMessageRenderer,
5156
5237
  BoundToolbar
5157
5238
  ]
5158
5239
  });
@@ -5821,6 +5902,7 @@ CopilotChatMessageView.Cursor = function Cursor({ className, ...props }) {
5821
5902
  const CopilotChatAttachmentQueue = ({ attachments, onRemoveAttachment, className }) => {
5822
5903
  if (attachments.length === 0) return null;
5823
5904
  return /* @__PURE__ */ jsx("div", {
5905
+ "data-testid": "copilot-attachment-queue",
5824
5906
  className: cn("cpk:flex cpk:flex-wrap cpk:gap-2 cpk:p-2", className),
5825
5907
  children: attachments.map((attachment) => {
5826
5908
  const isMedia = attachment.type === "image" || attachment.type === "video";
@@ -5855,73 +5937,6 @@ function AttachmentPreview({ attachment }) {
5855
5937
  case "document": return /* @__PURE__ */ jsx(DocumentPreview, { attachment });
5856
5938
  }
5857
5939
  }
5858
- function Lightbox({ onClose, children }) {
5859
- useEffect(() => {
5860
- const handleKey = (e) => {
5861
- if (e.key === "Escape") onClose();
5862
- };
5863
- document.addEventListener("keydown", handleKey);
5864
- return () => document.removeEventListener("keydown", handleKey);
5865
- }, [onClose]);
5866
- if (typeof document === "undefined") return null;
5867
- return createPortal(/* @__PURE__ */ jsxs("div", {
5868
- className: "cpk:fixed cpk:inset-0 cpk:z-[9999] cpk:flex cpk:items-center cpk:justify-center cpk:bg-black/80 cpk:animate-fade-in",
5869
- onClick: onClose,
5870
- children: [/* @__PURE__ */ jsx("button", {
5871
- onClick: onClose,
5872
- className: "cpk:absolute cpk:top-4 cpk:right-4 cpk:text-white cpk:bg-white/10 cpk:hover:bg-white/20 cpk:rounded-full cpk:w-10 cpk:h-10 cpk:flex cpk:items-center cpk:justify-center cpk:cursor-pointer cpk:border-none cpk:z-10",
5873
- "aria-label": "Close preview",
5874
- children: /* @__PURE__ */ jsx(X, { className: "cpk:w-5 cpk:h-5" })
5875
- }), /* @__PURE__ */ jsx("div", {
5876
- onClick: (e) => e.stopPropagation(),
5877
- children
5878
- })]
5879
- }), document.body);
5880
- }
5881
- /**
5882
- * Hook that manages lightbox open/close and uses the View Transition API to
5883
- * morph the thumbnail into fullscreen content.
5884
- *
5885
- * The trick: `view-transition-name` must live on exactly ONE element at a time.
5886
- * - Old state (thumbnail visible): name is on the thumbnail.
5887
- * - New state (lightbox visible): name moves to the lightbox content.
5888
- * `flushSync` ensures React commits the DOM change synchronously inside the
5889
- * `startViewTransition` callback so the API can snapshot old → new correctly.
5890
- */
5891
- function useLightbox() {
5892
- const thumbnailRef = useRef(null);
5893
- const [open, setOpen] = useState(false);
5894
- const vtName = useId();
5895
- return {
5896
- thumbnailRef,
5897
- vtName,
5898
- open,
5899
- openLightbox: useCallback(() => {
5900
- const thumb = thumbnailRef.current;
5901
- const doc = document;
5902
- if (doc.startViewTransition && thumb) {
5903
- thumb.style.viewTransitionName = vtName;
5904
- doc.startViewTransition(() => {
5905
- thumb.style.viewTransitionName = "";
5906
- flushSync(() => setOpen(true));
5907
- });
5908
- } else setOpen(true);
5909
- }, []),
5910
- closeLightbox: useCallback(() => {
5911
- const thumb = thumbnailRef.current;
5912
- const doc = document;
5913
- if (doc.startViewTransition && thumb) doc.startViewTransition(() => {
5914
- flushSync(() => setOpen(false));
5915
- thumb.style.viewTransitionName = vtName;
5916
- }).finished.then(() => {
5917
- thumb.style.viewTransitionName = "";
5918
- }).catch(() => {
5919
- thumb.style.viewTransitionName = "";
5920
- });
5921
- else setOpen(false);
5922
- }, [])
5923
- };
5924
- }
5925
5940
  function ImagePreview({ attachment }) {
5926
5941
  const src = getSourceUrl(attachment.source);
5927
5942
  const { thumbnailRef, vtName, open, openLightbox, closeLightbox } = useLightbox();
@@ -6247,13 +6262,7 @@ function computeOffsetTop(el, stopAt) {
6247
6262
 
6248
6263
  //#endregion
6249
6264
  //#region src/v2/components/chat/CopilotChatView.tsx
6250
- const FEATHER_HEIGHT = 96;
6251
- const PIN_TO_SEND_FEATHER_HEIGHT = 48;
6252
- const PinToSendSoftFeather = ({ className, style, ...props }) => /* @__PURE__ */ jsx("div", {
6253
- className: cn("cpk:absolute cpk:bottom-0 cpk:left-0 cpk:right-4 cpk:h-12 cpk:pointer-events-none cpk:z-10 cpk:bg-gradient-to-t", "cpk:from-white cpk:to-transparent", "cpk:dark:from-[rgb(33,33,33)]", className),
6254
- style,
6255
- ...props
6256
- });
6265
+ const SCROLL_BUTTON_OFFSET = 16;
6257
6266
  function DropOverlay() {
6258
6267
  return /* @__PURE__ */ jsx("div", {
6259
6268
  className: cn("cpk:absolute cpk:inset-0 cpk:z-50 cpk:pointer-events-none", "cpk:flex cpk:items-center cpk:justify-center", "cpk:bg-primary/5 cpk:backdrop-blur-[2px]", "cpk:border-2 cpk:border-dashed cpk:border-primary/40 cpk:rounded-lg cpk:m-2"),
@@ -6267,14 +6276,17 @@ function DropOverlay() {
6267
6276
  });
6268
6277
  }
6269
6278
  function CopilotChatView({ messageView, input, scrollView, suggestionView, welcomeScreen, messages = [], autoScroll = true, isRunning = false, suggestions, suggestionLoadingIndexes, onSelectSuggestion, onSubmitMessage, onStop, inputMode, inputValue, onInputChange, onStartTranscribe, onCancelTranscribe, onFinishTranscribe, onFinishTranscribeWithAudio, attachments, onRemoveAttachment, onAddFile, dragOver, onDragOver, onDragLeave, onDrop, isConnecting = false, hasExplicitThreadId = false, disclaimer, children, className, ...props }) {
6270
- const inputContainerRef = useRef(null);
6279
+ const [inputContainerEl, setInputContainerEl] = useState(null);
6271
6280
  const [inputContainerHeight, setInputContainerHeight] = useState(0);
6272
6281
  const [isResizing, setIsResizing] = useState(false);
6273
6282
  const resizeTimeoutRef = useRef(null);
6274
6283
  const { isKeyboardOpen, keyboardHeight, availableHeight } = useKeyboardHeight();
6275
6284
  useEffect(() => {
6276
- const element = inputContainerRef.current;
6277
- if (!element) return;
6285
+ const element = inputContainerEl;
6286
+ if (!element) {
6287
+ setInputContainerHeight(0);
6288
+ return;
6289
+ }
6278
6290
  const resizeObserver = new ResizeObserver((entries) => {
6279
6291
  for (const entry of entries) {
6280
6292
  const newHeight = entry.contentRect.height;
@@ -6297,7 +6309,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6297
6309
  resizeObserver.disconnect();
6298
6310
  if (resizeTimeoutRef.current) clearTimeout(resizeTimeoutRef.current);
6299
6311
  };
6300
- }, []);
6312
+ }, [inputContainerEl]);
6301
6313
  const BoundMessageView = renderSlot(messageView, CopilotChatMessageView, {
6302
6314
  messages,
6303
6315
  isRunning
@@ -6316,12 +6328,11 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6316
6328
  onAddFile,
6317
6329
  positioning: "static",
6318
6330
  keyboardHeight: isKeyboardOpen ? keyboardHeight : 0,
6319
- containerRef: inputContainerRef,
6320
6331
  showDisclaimer: true,
6321
6332
  bottomAnchored: true,
6322
6333
  ...disclaimer !== void 0 ? { disclaimer } : {}
6323
6334
  });
6324
- const hasSuggestions = !isConnecting && !isRunning && Array.isArray(suggestions) && suggestions.length > 0;
6335
+ const hasSuggestions = !isConnecting && Array.isArray(suggestions) && suggestions.length > 0;
6325
6336
  const BoundSuggestionView = hasSuggestions ? renderSlot(suggestionView, CopilotChatSuggestionView, {
6326
6337
  suggestions,
6327
6338
  loadingIndexes: suggestionLoadingIndexes,
@@ -6333,7 +6344,8 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6333
6344
  inputContainerHeight,
6334
6345
  isResizing,
6335
6346
  children: /* @__PURE__ */ jsx("div", {
6336
- style: { paddingBottom: `${hasSuggestions ? 4 : 32}px` },
6347
+ "data-testid": "copilot-scroll-content",
6348
+ style: { paddingBottom: `${inputContainerHeight + (hasSuggestions ? 4 : 32)}px` },
6337
6349
  children: /* @__PURE__ */ jsxs("div", {
6338
6350
  className: "cpk:max-w-3xl cpk:mx-auto",
6339
6351
  children: [BoundMessageView, hasSuggestions ? /* @__PURE__ */ jsx("div", {
@@ -6407,15 +6419,19 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6407
6419
  children: [
6408
6420
  dragOver && /* @__PURE__ */ jsx(DropOverlay, {}),
6409
6421
  BoundScrollView,
6410
- /* @__PURE__ */ jsx("div", {
6411
- className: "cpk:max-w-3xl cpk:mx-auto cpk:w-full",
6412
- children: attachments && attachments.length > 0 && /* @__PURE__ */ jsx(CopilotChatAttachmentQueue, {
6413
- attachments,
6414
- onRemoveAttachment: (id) => onRemoveAttachment?.(id),
6415
- className: "cpk:px-4"
6416
- })
6417
- }),
6418
- BoundInput
6422
+ /* @__PURE__ */ jsxs("div", {
6423
+ ref: setInputContainerEl,
6424
+ "data-testid": "copilot-input-overlay",
6425
+ className: "cpk:absolute cpk:bottom-0 cpk:left-0 cpk:right-0 cpk:z-20 cpk:pointer-events-none",
6426
+ children: [attachments && attachments.length > 0 && /* @__PURE__ */ jsx("div", {
6427
+ className: "cpk:max-w-3xl cpk:mx-auto cpk:w-full cpk:pointer-events-auto",
6428
+ children: /* @__PURE__ */ jsx(CopilotChatAttachmentQueue, {
6429
+ attachments,
6430
+ onRemoveAttachment: (id) => onRemoveAttachment?.(id),
6431
+ className: "cpk:px-4"
6432
+ })
6433
+ }), BoundInput]
6434
+ })
6419
6435
  ]
6420
6436
  });
6421
6437
  }
@@ -6444,7 +6460,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6444
6460
  BoundFeather,
6445
6461
  !isAtBottom && !isResizing && /* @__PURE__ */ jsx("div", {
6446
6462
  className: "cpk:absolute cpk:inset-x-0 cpk:flex cpk:justify-center cpk:z-30 cpk:pointer-events-none",
6447
- style: { bottom: `${inputContainerHeight + FEATHER_HEIGHT + 16}px` },
6463
+ style: { bottom: `${inputContainerHeight + SCROLL_BUTTON_OFFSET}px` },
6448
6464
  children: renderSlot(scrollToBottomButton, CopilotChatView.ScrollToBottomButton, { onClick: () => scrollToBottom() })
6449
6465
  })
6450
6466
  ] })
@@ -6458,7 +6474,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6458
6474
  spacerRef,
6459
6475
  topOffset: 16
6460
6476
  });
6461
- const BoundFeather = renderSlot(feather, PinToSendSoftFeather, {});
6477
+ const BoundFeather = renderSlot(feather, CopilotChatView.Feather, {});
6462
6478
  return /* @__PURE__ */ jsx(ScrollElementContext.Provider, {
6463
6479
  value: nonAutoScrollEl,
6464
6480
  children: /* @__PURE__ */ jsxs("div", {
@@ -6485,7 +6501,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6485
6501
  BoundFeather,
6486
6502
  showScrollButton && !isResizing && /* @__PURE__ */ jsx("div", {
6487
6503
  className: "cpk:absolute cpk:inset-x-0 cpk:flex cpk:justify-center cpk:z-30 cpk:pointer-events-none",
6488
- style: { bottom: `${inputContainerHeight + PIN_TO_SEND_FEATHER_HEIGHT + 16}px` },
6504
+ style: { bottom: `${inputContainerHeight + SCROLL_BUTTON_OFFSET}px` },
6489
6505
  children: renderSlot(scrollToBottomButton, CopilotChatView.ScrollToBottomButton, { onClick: () => scrollToBottom() })
6490
6506
  })
6491
6507
  ]
@@ -6553,7 +6569,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6553
6569
  BoundFeather,
6554
6570
  showScrollButton && !isResizing && /* @__PURE__ */ jsx("div", {
6555
6571
  className: "cpk:absolute cpk:inset-x-0 cpk:flex cpk:justify-center cpk:z-30 cpk:pointer-events-none",
6556
- style: { bottom: `${inputContainerHeight + FEATHER_HEIGHT + 16}px` },
6572
+ style: { bottom: `${inputContainerHeight + SCROLL_BUTTON_OFFSET}px` },
6557
6573
  children: renderSlot(scrollToBottomButton, CopilotChatView.ScrollToBottomButton, { onClick: () => scrollToBottom() })
6558
6574
  })
6559
6575
  ]
@@ -6597,9 +6613,8 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
6597
6613
  ...props,
6598
6614
  children: /* @__PURE__ */ jsx(ChevronDown, { className: "cpk:w-4 cpk:h-4 cpk:text-gray-600 cpk:dark:text-white" })
6599
6615
  });
6600
- _CopilotChatView.Feather = ({ className, style, ...props }) => /* @__PURE__ */ jsx("div", {
6601
- className: cn("cpk:absolute cpk:bottom-0 cpk:left-0 cpk:right-4 cpk:h-24 cpk:pointer-events-none cpk:z-10 cpk:bg-gradient-to-t", "cpk:from-white cpk:via-white cpk:to-transparent", "cpk:dark:from-[rgb(33,33,33)] cpk:dark:via-[rgb(33,33,33)]", className),
6602
- style,
6616
+ _CopilotChatView.Feather = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
6617
+ className,
6603
6618
  ...props
6604
6619
  });
6605
6620
  _CopilotChatView.WelcomeMessage = ({ className, ...props }) => {
@@ -9755,4 +9770,4 @@ function validateProps(props) {
9755
9770
 
9756
9771
  //#endregion
9757
9772
  export { CopilotKitProvider as $, CopilotChatSuggestionView as A, useConfigureSuggestions as B, CopilotChatToggleButton as C, CopilotChatView_default as D, CopilotChat as E, CopilotChatAssistantMessage_default as F, useRenderTool as G, useCapabilities as H, CopilotChatToolCallsView as I, useRenderActivityMessage as J, useComponent as K, useAttachments as L, CopilotChatReasoningMessage_default as M, CopilotChatUserMessage_default as N, CopilotChatAttachmentQueue as O, CopilotChatAttachmentRenderer as P, useRenderToolCall as Q, useThreads$1 as R, CopilotModalHeader as S, DefaultOpenIcon as T, useHumanInTheLoop as U, useSuggestions as V, useDefaultRenderTool as W, UseAgentUpdate as X, useRenderCustomMessages as Y, useAgent as Z, WildcardToolCallRender as _, ThreadsProvider as a, SandboxFunctionsContext as at, CopilotPopupView as b, CoAgentStateRendersProvider as c, MCPAppsActivityRenderer as ct, shouldShowDevConsole as d, CopilotChatInput_default as dt, useCopilotKit as et, useToast as f, AudioRecorderError as ft, useCopilotContext as g, CopilotContext as h, useCopilotChatConfiguration as ht, ThreadsContext as i, createA2UIMessageRenderer as it, CopilotChatSuggestionPill as j, CopilotChatMessageView as k, useCoAgentStateRenders as l, MCPAppsActivityType as lt, useCopilotMessagesContext as m, CopilotChatConfigurationProvider as mt, defaultCopilotContextCategories as n, useAgentContext as nt, useThreads as o, useSandboxFunctions as ot, CopilotMessagesContext as p, CopilotChatAudioRecorder as pt, useFrontendTool as q, CoAgentStateRenderBridge as r, defineToolCallRenderer as rt, CoAgentStateRendersContext as s, MCPAppsActivityContentSchema as st, CopilotKit as t, CopilotKitCoreReact as tt, useAsyncCallback as u, CopilotKitInspector as ut, CopilotPopup as v, DefaultCloseIcon as w, CopilotSidebarView as x, CopilotSidebar as y, useInterrupt as z };
9758
- //# sourceMappingURL=copilotkit-PzJlPKcU.mjs.map
9773
+ //# sourceMappingURL=copilotkit-DAatqMh2.mjs.map