@copilotkit/react-core 1.55.2 → 1.55.3-canary.1776243725

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 (41) hide show
  1. package/dist/{copilotkit-Cd-NrDyp.mjs → copilotkit-Bm4ox8G0.mjs} +89 -42
  2. package/dist/copilotkit-Bm4ox8G0.mjs.map +1 -0
  3. package/dist/{copilotkit-Dgdpbqjt.cjs → copilotkit-BoOnQHlE.cjs} +93 -40
  4. package/dist/copilotkit-BoOnQHlE.cjs.map +1 -0
  5. package/dist/{copilotkit-dwDWYpya.d.cts → copilotkit-EfopO2gn.d.cts} +27 -9
  6. package/dist/copilotkit-EfopO2gn.d.cts.map +1 -0
  7. package/dist/{copilotkit-BuhSUZHb.d.mts → copilotkit-opur-20s.d.mts} +27 -9
  8. package/dist/copilotkit-opur-20s.d.mts.map +1 -0
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.d.cts +1 -1
  11. package/dist/index.d.mts +1 -1
  12. package/dist/index.mjs +1 -1
  13. package/dist/index.umd.js +36 -15
  14. package/dist/index.umd.js.map +1 -1
  15. package/dist/v2/index.cjs +2 -1
  16. package/dist/v2/index.d.cts +2 -2
  17. package/dist/v2/index.d.mts +2 -2
  18. package/dist/v2/index.mjs +2 -2
  19. package/dist/v2/index.umd.js +87 -40
  20. package/dist/v2/index.umd.js.map +1 -1
  21. package/package.json +6 -6
  22. package/src/components/copilot-provider/__tests__/error-visibility-prod.test.tsx +70 -0
  23. package/src/components/copilot-provider/copilot-messages.tsx +39 -24
  24. package/src/components/copilot-provider/copilotkit-props.tsx +9 -5
  25. package/src/components/copilot-provider/copilotkit.tsx +4 -1
  26. package/src/v2/components/chat/CopilotChatAssistantMessage.tsx +18 -15
  27. package/src/v2/components/chat/CopilotChatReasoningMessage.tsx +17 -4
  28. package/src/v2/components/chat/CopilotChatUserMessage.tsx +13 -10
  29. package/src/v2/components/chat/__tests__/CopilotChat.e2e.test.tsx +131 -5
  30. package/src/v2/components/chat/__tests__/CopilotChatAssistantMessage.test.tsx +1 -1
  31. package/src/v2/components/chat/__tests__/CopilotChatCopyButton.clipboard.test.tsx +241 -0
  32. package/src/v2/hooks/__tests__/use-agent-throttle.test.tsx +10 -10
  33. package/src/v2/hooks/__tests__/use-capabilities.test.tsx +76 -0
  34. package/src/v2/hooks/index.ts +1 -0
  35. package/src/v2/hooks/use-agent.tsx +23 -4
  36. package/src/v2/hooks/use-capabilities.tsx +25 -0
  37. package/src/v2/providers/CopilotKitProvider.tsx +6 -2
  38. package/dist/copilotkit-BuhSUZHb.d.mts.map +0 -1
  39. package/dist/copilotkit-Cd-NrDyp.mjs.map +0 -1
  40. package/dist/copilotkit-Dgdpbqjt.cjs.map +0 -1
  41. package/dist/copilotkit-dwDWYpya.d.cts.map +0 -1
@@ -4,7 +4,7 @@ import { CopilotKitCore, CopilotKitCoreRuntimeConnectionStatus, ProxiedCopilotRu
4
4
  import { HttpAgent } from "@ag-ui/client";
5
5
  import { extendTailwindMerge, twMerge } from "tailwind-merge";
6
6
  import { ArrowUp, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronRightIcon, Copy, Edit, Loader2, MessageCircle, Mic, Play, Plus, RefreshCw, Square, ThumbsDown, ThumbsUp, Upload, Volume2, X } from "lucide-react";
7
- import { A2UI_DEFAULT_DESIGN_GUIDELINES, A2UI_DEFAULT_GENERATION_GUIDELINES, COPILOT_CLOUD_API_URL, COPILOT_CLOUD_CHAT_URL, COPILOT_CLOUD_PUBLIC_API_KEY_HEADER, ConfigurationError, CopilotKitAgentDiscoveryError, CopilotKitApiDiscoveryError, CopilotKitError, CopilotKitErrorCode, CopilotKitLowLevelError, CopilotKitRemoteEndpointDiscoveryError, DEFAULT_AGENT_ID, ErrorVisibility, MissingPublicApiKeyError, Severity, TranscriptionErrorCode, TranscriptionErrorCode as TranscriptionErrorCode$1, createLicenseContextValue, dataToUUID, exceedsMaxSize, formatFileSize, generateVideoThumbnail, getDocumentIcon, getModalityFromMimeType, getSourceUrl, matchesAcceptFilter, parseJson, partialJSONParse, randomId, randomUUID, readFileAsBase64, schemaToJsonSchema } from "@copilotkit/shared";
7
+ import { A2UI_DEFAULT_DESIGN_GUIDELINES, A2UI_DEFAULT_GENERATION_GUIDELINES, COPILOT_CLOUD_API_URL, COPILOT_CLOUD_CHAT_URL, COPILOT_CLOUD_PUBLIC_API_KEY_HEADER, ConfigurationError, CopilotKitAgentDiscoveryError, CopilotKitApiDiscoveryError, CopilotKitError, CopilotKitErrorCode, CopilotKitLowLevelError, CopilotKitRemoteEndpointDiscoveryError, DEFAULT_AGENT_ID, ErrorVisibility, MissingPublicApiKeyError, Severity, TranscriptionErrorCode, TranscriptionErrorCode as TranscriptionErrorCode$1, copyToClipboard, createLicenseContextValue, dataToUUID, exceedsMaxSize, formatFileSize, generateVideoThumbnail, getDocumentIcon, getModalityFromMimeType, getSourceUrl, matchesAcceptFilter, parseJson, partialJSONParse, randomId, randomUUID, readFileAsBase64, schemaToJsonSchema } from "@copilotkit/shared";
8
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
9
  import { Slot } from "@radix-ui/react-slot";
10
10
  import { cva } from "class-variance-authority";
@@ -3042,7 +3042,7 @@ function useStableArrayProp(prop, warningMessage, isMeaningfulChange) {
3042
3042
  }, [value, warningMessage]);
3043
3043
  return value;
3044
3044
  }
3045
- const CopilotKitProvider = ({ children, runtimeUrl, headers = {}, credentials, publicApiKey, publicLicenseKey, licenseToken, properties = {}, agents__unsafe_dev_only: agents = {}, selfManagedAgents = {}, renderToolCalls, renderActivityMessages, renderCustomMessages, frontendTools, humanInTheLoop, openGenerativeUI, showDevConsole = false, useSingleEndpoint, onError, a2ui, defaultThrottleMs, inspectorDefaultAnchor }) => {
3045
+ const CopilotKitProvider = ({ children, runtimeUrl, headers: headersProp = {}, credentials, publicApiKey, publicLicenseKey, licenseToken, properties = {}, agents__unsafe_dev_only: agents = {}, selfManagedAgents = {}, renderToolCalls, renderActivityMessages, renderCustomMessages, frontendTools, humanInTheLoop, openGenerativeUI, showDevConsole = false, useSingleEndpoint, onError, a2ui, defaultThrottleMs, inspectorDefaultAnchor }) => {
3046
3046
  const [shouldRenderInspector, setShouldRenderInspector] = useState(false);
3047
3047
  const [runtimeA2UIEnabled, setRuntimeA2UIEnabled] = useState(false);
3048
3048
  const [runtimeOpenGenUIEnabled, setRuntimeOpenGenUIEnabled] = useState(false);
@@ -3097,6 +3097,7 @@ const CopilotKitProvider = ({ children, runtimeUrl, headers = {}, credentials, p
3097
3097
  ...selfManagedAgents
3098
3098
  }), [agents, selfManagedAgents]);
3099
3099
  const hasLocalAgents = mergedAgents && Object.keys(mergedAgents).length > 0;
3100
+ const headers = typeof headersProp === "function" ? headersProp() : headersProp;
3100
3101
  const mergedHeaders = useMemo(() => {
3101
3102
  if (!resolvedPublicKey) return headers;
3102
3103
  if (headers[HEADER_NAME]) return headers;
@@ -3589,6 +3590,17 @@ function useAgent({ agentId, threadId, updates, throttleMs } = {}) {
3589
3590
  const handlers = {};
3590
3591
  let timerId = null;
3591
3592
  let active = true;
3593
+ let batchScheduled = false;
3594
+ const batchedForceUpdate = () => {
3595
+ if (!active) return;
3596
+ if (!batchScheduled) {
3597
+ batchScheduled = true;
3598
+ queueMicrotask(() => {
3599
+ batchScheduled = false;
3600
+ if (active) forceUpdate();
3601
+ });
3602
+ }
3603
+ };
3592
3604
  if (updateFlags.includes(UseAgentUpdate.OnMessagesChanged)) {
3593
3605
  const ms = effectiveThrottleMs;
3594
3606
  if (ms > 0) {
@@ -3613,11 +3625,11 @@ function useAgent({ agentId, threadId, updates, throttleMs } = {}) {
3613
3625
  handlers.onMessagesChanged = throttledNotify;
3614
3626
  } else handlers.onMessagesChanged = forceUpdate;
3615
3627
  }
3616
- if (updateFlags.includes(UseAgentUpdate.OnStateChanged)) handlers.onStateChanged = forceUpdate;
3628
+ if (updateFlags.includes(UseAgentUpdate.OnStateChanged)) handlers.onStateChanged = batchedForceUpdate;
3617
3629
  if (updateFlags.includes(UseAgentUpdate.OnRunStatusChanged)) {
3618
- handlers.onRunInitialized = forceUpdate;
3619
- handlers.onRunFinalized = forceUpdate;
3620
- handlers.onRunFailed = forceUpdate;
3630
+ handlers.onRunInitialized = batchedForceUpdate;
3631
+ handlers.onRunFinalized = batchedForceUpdate;
3632
+ handlers.onRunFailed = batchedForceUpdate;
3621
3633
  }
3622
3634
  const subscription = agent.subscribe(handlers);
3623
3635
  return () => {
@@ -4154,6 +4166,24 @@ function useHumanInTheLoop(tool, deps) {
4154
4166
  ]);
4155
4167
  }
4156
4168
 
4169
+ //#endregion
4170
+ //#region src/v2/hooks/use-capabilities.tsx
4171
+ /**
4172
+ * Returns the capabilities declared by the given agent (or the default agent).
4173
+ * Capabilities are populated from the runtime `/info` response at connection
4174
+ * time. The hook reads them synchronously from the agent instance — there is
4175
+ * no separate loading state, but the value will be `undefined` until the
4176
+ * runtime handshake completes.
4177
+ *
4178
+ * @param agentId - Optional agent ID. If omitted, uses the default agent.
4179
+ * @returns The agent's capabilities, or `undefined` if the agent doesn't
4180
+ * declare capabilities.
4181
+ */
4182
+ function useCapabilities(agentId) {
4183
+ const { agent } = useAgent({ agentId });
4184
+ if (agent && "capabilities" in agent) return agent.capabilities;
4185
+ }
4186
+
4157
4187
  //#endregion
4158
4188
  //#region src/v2/hooks/use-suggestions.tsx
4159
4189
  function useSuggestions({ agentId } = {}) {
@@ -4805,11 +4835,8 @@ function CopilotChatAssistantMessage({ message, messages, isRunning, onThumbsUp,
4805
4835
  useKatexStyles();
4806
4836
  const boundMarkdownRenderer = renderSlot(markdownRenderer, CopilotChatAssistantMessage.MarkdownRenderer, { content: message.content || "" });
4807
4837
  const boundCopyButton = renderSlot(copyButton, CopilotChatAssistantMessage.CopyButton, { onClick: async () => {
4808
- if (message.content) try {
4809
- await navigator.clipboard.writeText(message.content);
4810
- } catch (err) {
4811
- console.error("Failed to copy message:", err);
4812
- }
4838
+ if (message.content) return await copyToClipboard(message.content);
4839
+ return false;
4813
4840
  } });
4814
4841
  const boundThumbsUpButton = renderSlot(thumbsUpButton, CopilotChatAssistantMessage.ThumbsUpButton, { onClick: onThumbsUp });
4815
4842
  const boundThumbsDownButton = renderSlot(thumbsDownButton, CopilotChatAssistantMessage.ThumbsDownButton, { onClick: onThumbsDown });
@@ -4907,14 +4934,17 @@ function CopilotChatAssistantMessage({ message, messages, isRunning, onThumbsUp,
4907
4934
  if (timerRef.current !== null) clearTimeout(timerRef.current);
4908
4935
  };
4909
4936
  }, []);
4910
- const handleClick = (event) => {
4911
- setCopied(true);
4912
- if (timerRef.current !== null) clearTimeout(timerRef.current);
4913
- timerRef.current = setTimeout(() => {
4914
- timerRef.current = null;
4915
- setCopied(false);
4916
- }, 2e3);
4917
- if (onClick) onClick(event);
4937
+ const handleClick = async (event) => {
4938
+ let success = false;
4939
+ if (onClick) success = await Promise.resolve(onClick(event)) === true;
4940
+ if (success) {
4941
+ setCopied(true);
4942
+ if (timerRef.current !== null) clearTimeout(timerRef.current);
4943
+ timerRef.current = setTimeout(() => {
4944
+ timerRef.current = null;
4945
+ setCopied(false);
4946
+ }, 2e3);
4947
+ }
4918
4948
  };
4919
4949
  return /* @__PURE__ */ jsx(ToolbarButton, {
4920
4950
  "data-testid": "copilot-copy-button",
@@ -5067,11 +5097,8 @@ function CopilotChatUserMessage({ message, onEditMessage, branchIndex, numberOfB
5067
5097
  const mediaParts = useMemo(() => getMediaParts(message.content), [message.content]);
5068
5098
  const BoundMessageRenderer = renderSlot(messageRenderer, CopilotChatUserMessage.MessageRenderer, { content: flattenedContent });
5069
5099
  const BoundCopyButton = renderSlot(copyButton, CopilotChatUserMessage.CopyButton, { onClick: async () => {
5070
- if (flattenedContent) try {
5071
- await navigator.clipboard.writeText(flattenedContent);
5072
- } catch (err) {
5073
- console.error("Failed to copy message:", err);
5074
- }
5100
+ if (flattenedContent) return await copyToClipboard(flattenedContent);
5101
+ return false;
5075
5102
  } });
5076
5103
  const BoundEditButton = renderSlot(editButton, CopilotChatUserMessage.EditButton, { onClick: () => onEditMessage?.({ message }) });
5077
5104
  const BoundBranchNavigation = renderSlot(branchNavigation, CopilotChatUserMessage.BranchNavigation, {
@@ -5159,10 +5186,13 @@ function CopilotChatUserMessage({ message, onEditMessage, branchIndex, numberOfB
5159
5186
  _CopilotChatUserMessage.CopyButton = ({ className, title, onClick, ...props }) => {
5160
5187
  const labels = useCopilotChatConfiguration()?.labels ?? CopilotChatDefaultLabels;
5161
5188
  const [copied, setCopied] = useState(false);
5162
- const handleClick = (event) => {
5163
- setCopied(true);
5164
- setTimeout(() => setCopied(false), 2e3);
5165
- if (onClick) onClick(event);
5189
+ const handleClick = async (event) => {
5190
+ let success = false;
5191
+ if (onClick) success = await Promise.resolve(onClick(event)) === true;
5192
+ if (success) {
5193
+ setCopied(true);
5194
+ setTimeout(() => setCopied(false), 2e3);
5195
+ }
5166
5196
  };
5167
5197
  return /* @__PURE__ */ jsx(ToolbarButton, {
5168
5198
  "data-testid": "copilot-user-copy-button",
@@ -5269,17 +5299,24 @@ function CopilotChatReasoningMessage({ message, messages, isRunning, header, con
5269
5299
  return () => clearInterval(timer);
5270
5300
  }, [isStreaming]);
5271
5301
  const [isOpen, setIsOpen] = useState(isStreaming);
5302
+ const userToggledRef = useRef(false);
5272
5303
  useEffect(() => {
5273
- if (isStreaming) setIsOpen(true);
5274
- else setIsOpen(false);
5304
+ if (isStreaming) {
5305
+ userToggledRef.current = false;
5306
+ setIsOpen(true);
5307
+ } else if (!userToggledRef.current) setIsOpen(false);
5275
5308
  }, [isStreaming]);
5309
+ const handleToggle = hasContent ? () => {
5310
+ userToggledRef.current = true;
5311
+ setIsOpen((prev) => !prev);
5312
+ } : void 0;
5276
5313
  const label = isStreaming ? "Thinking…" : `Thought for ${formatDuration(elapsed)}`;
5277
5314
  const boundHeader = renderSlot(header, CopilotChatReasoningMessage.Header, {
5278
5315
  isOpen,
5279
5316
  label,
5280
5317
  hasContent,
5281
5318
  isStreaming,
5282
- onClick: hasContent ? () => setIsOpen((prev) => !prev) : void 0
5319
+ onClick: handleToggle
5283
5320
  });
5284
5321
  const boundContent = renderSlot(contentView, CopilotChatReasoningMessage.Content, {
5285
5322
  isStreaming,
@@ -7983,6 +8020,20 @@ function shouldShowDevConsole(showDevConsole) {
7983
8020
  /**
7984
8021
  * An internal context to separate the messages state (which is constantly changing) from the rest of CopilotKit context
7985
8022
  */
8023
+ /**
8024
+ * Determine whether a GraphQL error should be suppressed based on its visibility
8025
+ * and whether the dev console is active.
8026
+ *
8027
+ * Returns `null` when the error should be surfaced to the UI, or a log prefix
8028
+ * string when the error should be suppressed (logged to console only).
8029
+ *
8030
+ * Exported for unit testing.
8031
+ */
8032
+ function getErrorSuppression(visibility, isDev) {
8033
+ if (visibility === ErrorVisibility.SILENT) return "CopilotKit Silent Error:";
8034
+ if (!isDev && visibility === ErrorVisibility.DEV_ONLY) return "CopilotKit Error (hidden in production):";
8035
+ return null;
8036
+ }
7986
8037
  const MessagesTapContext = createContext(null);
7987
8038
  function useMessagesTap() {
7988
8039
  const tap = useContext(MessagesTapContext);
@@ -8066,12 +8117,9 @@ function CopilotMessages({ children }) {
8066
8117
  const graphQLErrors = error.graphQLErrors;
8067
8118
  const routeError = (gqlError) => {
8068
8119
  const visibility = gqlError.extensions?.visibility;
8069
- if (!shouldShowDevConsole(showDevConsole)) {
8070
- console.error("CopilotKit Error (hidden in production):", gqlError.message);
8071
- return;
8072
- }
8073
- if (visibility === ErrorVisibility.SILENT) {
8074
- console.error("CopilotKit Silent Error:", gqlError.message);
8120
+ const suppression = getErrorSuppression(visibility, shouldShowDevConsole(showDevConsole));
8121
+ if (suppression) {
8122
+ console.error(suppression, gqlError.message);
8075
8123
  return;
8076
8124
  }
8077
8125
  const ckError = createStructuredError(gqlError);
@@ -8088,8 +8136,7 @@ function CopilotMessages({ children }) {
8088
8136
  }
8089
8137
  };
8090
8138
  graphQLErrors.forEach(routeError);
8091
- } else if (!shouldShowDevConsole(showDevConsole)) console.error("CopilotKit Error (hidden in production):", error);
8092
- else {
8139
+ } else {
8093
8140
  const fallbackError = new CopilotKitError({
8094
8141
  message: error?.message || String(error),
8095
8142
  code: CopilotKitErrorCode.UNKNOWN
@@ -9156,7 +9203,7 @@ function CopilotKitInternal(cpkProps) {
9156
9203
  publicApiKey,
9157
9204
  ...cloud ? { cloud } : {},
9158
9205
  chatApiEndpoint,
9159
- headers: props.headers || {},
9206
+ headers: typeof props.headers === "function" ? props.headers() : props.headers || {},
9160
9207
  properties: props.properties || {},
9161
9208
  transcribeAudioUrl: props.transcribeAudioUrl,
9162
9209
  textToSpeechUrl: props.textToSpeechUrl,
@@ -9502,5 +9549,5 @@ function validateProps(props) {
9502
9549
  }
9503
9550
 
9504
9551
  //#endregion
9505
- export { useCopilotKit as $, CopilotChatSuggestionView as A, useConfigureSuggestions as B, CopilotChatToggleButton as C, CopilotChatView_default as D, CopilotChat as E, CopilotChatAssistantMessage_default as F, useComponent as G, useHumanInTheLoop as H, CopilotChatToolCallsView as I, useRenderCustomMessages as J, useFrontendTool as K, useAttachments as L, CopilotChatReasoningMessage_default as M, CopilotChatUserMessage_default as N, CopilotChatAttachmentQueue as O, CopilotChatAttachmentRenderer as P, CopilotKitProvider as Q, useThreads$1 as R, CopilotModalHeader as S, DefaultOpenIcon as T, useDefaultRenderTool as U, useSuggestions as V, useRenderTool as W, useAgent as X, UseAgentUpdate as Y, useRenderToolCall as Z, WildcardToolCallRender as _, ThreadsProvider as a, useSandboxFunctions as at, CopilotPopupView as b, CoAgentStateRendersProvider as c, MCPAppsActivityType as ct, shouldShowDevConsole as d, AudioRecorderError as dt, CopilotKitCoreReact as et, useToast as f, CopilotChatAudioRecorder as ft, useCopilotContext as g, CopilotContext as h, ThreadsContext as i, SandboxFunctionsContext as it, CopilotChatSuggestionPill as j, CopilotChatMessageView as k, useCoAgentStateRenders as l, CopilotKitInspector as lt, useCopilotMessagesContext as m, useCopilotChatConfiguration as mt, defaultCopilotContextCategories as n, defineToolCallRenderer as nt, useThreads as o, MCPAppsActivityContentSchema as ot, CopilotMessagesContext as p, CopilotChatConfigurationProvider as pt, useRenderActivityMessage as q, CoAgentStateRenderBridge as r, createA2UIMessageRenderer as rt, CoAgentStateRendersContext as s, MCPAppsActivityRenderer as st, CopilotKit as t, useAgentContext as tt, useAsyncCallback as u, CopilotChatInput_default as ut, CopilotPopup as v, DefaultCloseIcon as w, CopilotSidebarView as x, CopilotSidebar as y, useInterrupt as z };
9506
- //# sourceMappingURL=copilotkit-Cd-NrDyp.mjs.map
9552
+ 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 };
9553
+ //# sourceMappingURL=copilotkit-Bm4ox8G0.mjs.map