@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
package/dist/v2/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_copilotkit = require('../copilotkit-Dgdpbqjt.cjs');
4
+ const require_copilotkit = require('../copilotkit-BoOnQHlE.cjs');
5
5
  require("./index.css");
6
6
  let _copilotkit_a2ui_renderer = require("@copilotkit/a2ui-renderer");
7
7
 
@@ -69,6 +69,7 @@ exports.defineToolCallRenderer = require_copilotkit.defineToolCallRenderer;
69
69
  exports.useAgent = require_copilotkit.useAgent;
70
70
  exports.useAgentContext = require_copilotkit.useAgentContext;
71
71
  exports.useAttachments = require_copilotkit.useAttachments;
72
+ exports.useCapabilities = require_copilotkit.useCapabilities;
72
73
  exports.useComponent = require_copilotkit.useComponent;
73
74
  exports.useConfigureSuggestions = require_copilotkit.useConfigureSuggestions;
74
75
  exports.useCopilotChatConfiguration = require_copilotkit.useCopilotChatConfiguration;
@@ -1,6 +1,6 @@
1
- import { $ as MCPAppsActivityContentSchema, A as useAgentContext, At as CopilotChatSuggestionView, B as InterruptEvent, Bt as CopilotChatToolCallsView, C as useThreads, Ct as DefaultOpenIcon, D as useSuggestions, Dt as CopilotChatViewProps, E as useConfigureSuggestions, Et as CopilotChatView, F as useRenderTool, Ft as CopilotChatReasoningMessageProps, G as ReactFrontendTool, Gt as CopilotChatConfigurationProvider, H as InterruptRenderProps, Ht as CopilotChatInput, I as useComponent, It as CopilotChatUserMessage, J as useRenderCustomMessages, Jt as CopilotChatLabels, K as ReactActivityMessageRenderer, Kt as CopilotChatConfigurationProviderProps, L as useFrontendTool, Lt as CopilotChatUserMessageProps, M as useAgent, Mt as CopilotChatSuggestionPill, N as useHumanInTheLoop, Nt as CopilotChatSuggestionPillProps, O as AgentContextInput, Ot as CopilotChatMessageView, P as useDefaultRenderTool, Pt as CopilotChatReasoningMessage, Q as MCPAppsActivityContent, Qt as CopilotChatAudioRecorder, R as useRenderActivityMessage, Rt as CopilotChatAssistantMessage, S as UseThreadsResult, St as DefaultCloseIcon, T as useInterrupt, Tt as CopilotChatProps, U as defineToolCallRenderer, Ut as CopilotChatInputProps, V as InterruptHandlerProps, Vt as CopilotChatToolCallsViewProps, W as ReactHumanInTheLoop, Wt as ToolsMenuItem, X as ReactCustomMessageRendererPosition, Xt as AudioRecorderError, Y as ReactCustomMessageRenderer, Yt as useCopilotChatConfiguration, Z as useRenderToolCall, Zt as AudioRecorderState, _ as UseAttachmentsProps, _t as CopilotSidebarViewProps, a as A2UIUserAction, at as Attachment, b as Thread, bt as CopilotChatToggleButton, c as SandboxFunctionsContext, ct as CopilotChatAttachmentRenderer, d as CopilotKitProvider, dt as CopilotPopupProps, et as MCPAppsActivityRenderer, f as CopilotKitProviderProps, ft as CopilotSidebar, g as CopilotKitCoreReactSubscriber, gt as CopilotSidebarView, h as CopilotKitCoreReactConfig, ht as CopilotPopupViewProps, i as A2UIMessageRendererOptions, it as WildcardToolCallRender, j as UseAgentUpdate, jt as CopilotChatSuggestionViewProps, k as JsonSerializable, kt as CopilotChatMessageViewProps, l as useSandboxFunctions, lt as CopilotChatAttachmentQueue, m as CopilotKitCoreReact, mt as CopilotPopupView, nt as CopilotKitInspector, o as createA2UIMessageRenderer, ot as AttachmentModality, p as useCopilotKit, pt as CopilotSidebarProps, q as ReactToolCallRenderer, qt as CopilotChatConfigurationValue, r as CopilotKitProps, rt as CopilotKitInspectorProps, s as InspectorAnchor, st as AttachmentsConfig, t as CopilotKit, tt as MCPAppsActivityType, u as CopilotKitContextValue, ut as CopilotPopup, v as UseAttachmentsReturn, vt as CopilotModalHeader, w as UseInterruptConfig, wt as CopilotChat, x as UseThreadsInput, xt as CopilotChatToggleButtonProps, y as useAttachments, yt as CopilotModalHeaderProps, z as SandboxFunction, zt as CopilotChatAssistantMessageProps } from "../copilotkit-dwDWYpya.cjs";
1
+ import { $ as MCPAppsActivityContent, $t as CopilotChatAudioRecorder, A as useAgentContext, At as CopilotChatMessageViewProps, B as SandboxFunction, Bt as CopilotChatAssistantMessageProps, C as useThreads, Ct as DefaultCloseIcon, D as useSuggestions, Dt as CopilotChatView, E as useConfigureSuggestions, Et as CopilotChatProps, F as useDefaultRenderTool, Ft as CopilotChatReasoningMessage, G as ReactHumanInTheLoop, Gt as ToolsMenuItem, H as InterruptHandlerProps, Ht as CopilotChatToolCallsViewProps, I as useRenderTool, It as CopilotChatReasoningMessageProps, J as ReactToolCallRenderer, Jt as CopilotChatConfigurationValue, K as ReactFrontendTool, Kt as CopilotChatConfigurationProvider, L as useComponent, Lt as CopilotChatUserMessage, M as UseAgentUpdate, Mt as CopilotChatSuggestionViewProps, N as useAgent, Nt as CopilotChatSuggestionPill, O as AgentContextInput, Ot as CopilotChatViewProps, P as useHumanInTheLoop, Pt as CopilotChatSuggestionPillProps, Q as useRenderToolCall, Qt as AudioRecorderState, R as useFrontendTool, Rt as CopilotChatUserMessageProps, S as UseThreadsResult, St as CopilotChatToggleButtonProps, T as useInterrupt, Tt as CopilotChat, U as InterruptRenderProps, Ut as CopilotChatInput, V as InterruptEvent, Vt as CopilotChatToolCallsView, W as defineToolCallRenderer, Wt as CopilotChatInputProps, X as ReactCustomMessageRenderer, Xt as useCopilotChatConfiguration, Y as useRenderCustomMessages, Yt as CopilotChatLabels, Z as ReactCustomMessageRendererPosition, Zt as AudioRecorderError, _ as UseAttachmentsProps, _t as CopilotSidebarView, a as A2UIUserAction, at as WildcardToolCallRender, b as Thread, bt as CopilotModalHeaderProps, c as SandboxFunctionsContext, ct as AttachmentsConfig, d as CopilotKitProvider, dt as CopilotPopup, et as MCPAppsActivityContentSchema, f as CopilotKitProviderProps, ft as CopilotPopupProps, g as CopilotKitCoreReactSubscriber, gt as CopilotPopupViewProps, h as CopilotKitCoreReactConfig, ht as CopilotPopupView, i as A2UIMessageRendererOptions, it as CopilotKitInspectorProps, j as useCapabilities, jt as CopilotChatSuggestionView, k as JsonSerializable, kt as CopilotChatMessageView, l as useSandboxFunctions, lt as CopilotChatAttachmentRenderer, m as CopilotKitCoreReact, mt as CopilotSidebarProps, nt as MCPAppsActivityType, o as createA2UIMessageRenderer, ot as Attachment, p as useCopilotKit, pt as CopilotSidebar, q as ReactActivityMessageRenderer, qt as CopilotChatConfigurationProviderProps, r as CopilotKitProps, rt as CopilotKitInspector, s as InspectorAnchor, st as AttachmentModality, t as CopilotKit, tt as MCPAppsActivityRenderer, u as CopilotKitContextValue, ut as CopilotChatAttachmentQueue, v as UseAttachmentsReturn, vt as CopilotSidebarViewProps, w as UseInterruptConfig, wt as DefaultOpenIcon, x as UseThreadsInput, xt as CopilotChatToggleButton, y as useAttachments, yt as CopilotModalHeader, z as useRenderActivityMessage, zt as CopilotChatAssistantMessage } from "../copilotkit-EfopO2gn.cjs";
2
2
  import "./index.css";
3
3
  import { Theme as A2UITheme, defaultTheme as a2uiDefaultTheme } from "@copilotkit/a2ui-renderer";
4
4
  export * from "@copilotkit/core";
5
5
  export * from "@ag-ui/client";
6
- export { type A2UIMessageRendererOptions, type A2UITheme, type A2UIUserAction, AgentContextInput, Attachment, AttachmentModality, AttachmentsConfig, AudioRecorderError, AudioRecorderState, CopilotChat, CopilotChatAssistantMessage, CopilotChatAssistantMessageProps, CopilotChatAttachmentQueue, CopilotChatAttachmentRenderer, CopilotChatAudioRecorder, CopilotChatConfigurationProvider, CopilotChatConfigurationProviderProps, CopilotChatConfigurationValue, CopilotChatInput, CopilotChatInputProps, CopilotChatLabels, CopilotChatMessageView, CopilotChatMessageViewProps, CopilotChatProps, CopilotChatReasoningMessage, CopilotChatReasoningMessageProps, CopilotChatSuggestionPill, CopilotChatSuggestionPillProps, CopilotChatSuggestionView, CopilotChatSuggestionViewProps, CopilotChatToggleButton, DefaultCloseIcon as CopilotChatToggleButtonCloseIcon, DefaultOpenIcon as CopilotChatToggleButtonOpenIcon, CopilotChatToggleButtonProps, CopilotChatToolCallsView, CopilotChatToolCallsViewProps, CopilotChatUserMessage, CopilotChatUserMessageProps, CopilotChatView, CopilotChatViewProps, CopilotKit, CopilotKitContextValue, CopilotKitCoreReact, CopilotKitCoreReactConfig, CopilotKitCoreReactSubscriber, CopilotKitInspector, CopilotKitInspectorProps, type CopilotKitProps, CopilotKitProvider, CopilotKitProviderProps, CopilotModalHeader, CopilotModalHeaderProps, CopilotPopup, CopilotPopupProps, CopilotPopupView, CopilotPopupViewProps, CopilotSidebar, CopilotSidebarProps, CopilotSidebarView, CopilotSidebarViewProps, InspectorAnchor, InterruptEvent, InterruptHandlerProps, InterruptRenderProps, JsonSerializable, MCPAppsActivityContent, MCPAppsActivityContentSchema, MCPAppsActivityRenderer, MCPAppsActivityType, ReactActivityMessageRenderer, ReactCustomMessageRenderer, ReactCustomMessageRendererPosition, ReactFrontendTool, ReactHumanInTheLoop, ReactToolCallRenderer, SandboxFunction, SandboxFunctionsContext, Thread, ToolsMenuItem, UseAgentUpdate, UseAttachmentsProps, UseAttachmentsReturn, UseInterruptConfig, UseThreadsInput, UseThreadsResult, WildcardToolCallRender, a2uiDefaultTheme, createA2UIMessageRenderer, defineToolCallRenderer, useAgent, useAgentContext, useAttachments, useComponent, useConfigureSuggestions, useCopilotChatConfiguration, useCopilotKit, useDefaultRenderTool, useFrontendTool, useHumanInTheLoop, useInterrupt, useRenderActivityMessage, useRenderCustomMessages, useRenderTool, useRenderToolCall, useSandboxFunctions, useSuggestions, useThreads };
6
+ export { type A2UIMessageRendererOptions, type A2UITheme, type A2UIUserAction, AgentContextInput, Attachment, AttachmentModality, AttachmentsConfig, AudioRecorderError, AudioRecorderState, CopilotChat, CopilotChatAssistantMessage, CopilotChatAssistantMessageProps, CopilotChatAttachmentQueue, CopilotChatAttachmentRenderer, CopilotChatAudioRecorder, CopilotChatConfigurationProvider, CopilotChatConfigurationProviderProps, CopilotChatConfigurationValue, CopilotChatInput, CopilotChatInputProps, CopilotChatLabels, CopilotChatMessageView, CopilotChatMessageViewProps, CopilotChatProps, CopilotChatReasoningMessage, CopilotChatReasoningMessageProps, CopilotChatSuggestionPill, CopilotChatSuggestionPillProps, CopilotChatSuggestionView, CopilotChatSuggestionViewProps, CopilotChatToggleButton, DefaultCloseIcon as CopilotChatToggleButtonCloseIcon, DefaultOpenIcon as CopilotChatToggleButtonOpenIcon, CopilotChatToggleButtonProps, CopilotChatToolCallsView, CopilotChatToolCallsViewProps, CopilotChatUserMessage, CopilotChatUserMessageProps, CopilotChatView, CopilotChatViewProps, CopilotKit, CopilotKitContextValue, CopilotKitCoreReact, CopilotKitCoreReactConfig, CopilotKitCoreReactSubscriber, CopilotKitInspector, CopilotKitInspectorProps, type CopilotKitProps, CopilotKitProvider, CopilotKitProviderProps, CopilotModalHeader, CopilotModalHeaderProps, CopilotPopup, CopilotPopupProps, CopilotPopupView, CopilotPopupViewProps, CopilotSidebar, CopilotSidebarProps, CopilotSidebarView, CopilotSidebarViewProps, InspectorAnchor, InterruptEvent, InterruptHandlerProps, InterruptRenderProps, JsonSerializable, MCPAppsActivityContent, MCPAppsActivityContentSchema, MCPAppsActivityRenderer, MCPAppsActivityType, ReactActivityMessageRenderer, ReactCustomMessageRenderer, ReactCustomMessageRendererPosition, ReactFrontendTool, ReactHumanInTheLoop, ReactToolCallRenderer, SandboxFunction, SandboxFunctionsContext, Thread, ToolsMenuItem, UseAgentUpdate, UseAttachmentsProps, UseAttachmentsReturn, UseInterruptConfig, UseThreadsInput, UseThreadsResult, WildcardToolCallRender, a2uiDefaultTheme, createA2UIMessageRenderer, defineToolCallRenderer, useAgent, useAgentContext, useAttachments, useCapabilities, useComponent, useConfigureSuggestions, useCopilotChatConfiguration, useCopilotKit, useDefaultRenderTool, useFrontendTool, useHumanInTheLoop, useInterrupt, useRenderActivityMessage, useRenderCustomMessages, useRenderTool, useRenderToolCall, useSandboxFunctions, useSuggestions, useThreads };
@@ -1,6 +1,6 @@
1
- import { $ as MCPAppsActivityContentSchema, A as useAgentContext, At as CopilotChatSuggestionView, B as InterruptEvent, Bt as CopilotChatToolCallsView, C as useThreads, Ct as DefaultOpenIcon, D as useSuggestions, Dt as CopilotChatViewProps, E as useConfigureSuggestions, Et as CopilotChatView, F as useRenderTool, Ft as CopilotChatReasoningMessageProps, G as ReactFrontendTool, Gt as CopilotChatConfigurationProvider, H as InterruptRenderProps, Ht as CopilotChatInput, I as useComponent, It as CopilotChatUserMessage, J as useRenderCustomMessages, Jt as CopilotChatLabels, K as ReactActivityMessageRenderer, Kt as CopilotChatConfigurationProviderProps, L as useFrontendTool, Lt as CopilotChatUserMessageProps, M as useAgent, Mt as CopilotChatSuggestionPill, N as useHumanInTheLoop, Nt as CopilotChatSuggestionPillProps, O as AgentContextInput, Ot as CopilotChatMessageView, P as useDefaultRenderTool, Pt as CopilotChatReasoningMessage, Q as MCPAppsActivityContent, Qt as CopilotChatAudioRecorder, R as useRenderActivityMessage, Rt as CopilotChatAssistantMessage, S as UseThreadsResult, St as DefaultCloseIcon, T as useInterrupt, Tt as CopilotChatProps, U as defineToolCallRenderer, Ut as CopilotChatInputProps, V as InterruptHandlerProps, Vt as CopilotChatToolCallsViewProps, W as ReactHumanInTheLoop, Wt as ToolsMenuItem, X as ReactCustomMessageRendererPosition, Xt as AudioRecorderError, Y as ReactCustomMessageRenderer, Yt as useCopilotChatConfiguration, Z as useRenderToolCall, Zt as AudioRecorderState, _ as UseAttachmentsProps, _t as CopilotSidebarViewProps, a as A2UIUserAction, at as Attachment, b as Thread, bt as CopilotChatToggleButton, c as SandboxFunctionsContext, ct as CopilotChatAttachmentRenderer, d as CopilotKitProvider, dt as CopilotPopupProps, et as MCPAppsActivityRenderer, f as CopilotKitProviderProps, ft as CopilotSidebar, g as CopilotKitCoreReactSubscriber, gt as CopilotSidebarView, h as CopilotKitCoreReactConfig, ht as CopilotPopupViewProps, i as A2UIMessageRendererOptions, it as WildcardToolCallRender, j as UseAgentUpdate, jt as CopilotChatSuggestionViewProps, k as JsonSerializable, kt as CopilotChatMessageViewProps, l as useSandboxFunctions, lt as CopilotChatAttachmentQueue, m as CopilotKitCoreReact, mt as CopilotPopupView, nt as CopilotKitInspector, o as createA2UIMessageRenderer, ot as AttachmentModality, p as useCopilotKit, pt as CopilotSidebarProps, q as ReactToolCallRenderer, qt as CopilotChatConfigurationValue, r as CopilotKitProps, rt as CopilotKitInspectorProps, s as InspectorAnchor, st as AttachmentsConfig, t as CopilotKit, tt as MCPAppsActivityType, u as CopilotKitContextValue, ut as CopilotPopup, v as UseAttachmentsReturn, vt as CopilotModalHeader, w as UseInterruptConfig, wt as CopilotChat, x as UseThreadsInput, xt as CopilotChatToggleButtonProps, y as useAttachments, yt as CopilotModalHeaderProps, z as SandboxFunction, zt as CopilotChatAssistantMessageProps } from "../copilotkit-BuhSUZHb.mjs";
1
+ import { $ as MCPAppsActivityContent, $t as CopilotChatAudioRecorder, A as useAgentContext, At as CopilotChatMessageViewProps, B as SandboxFunction, Bt as CopilotChatAssistantMessageProps, C as useThreads, Ct as DefaultCloseIcon, D as useSuggestions, Dt as CopilotChatView, E as useConfigureSuggestions, Et as CopilotChatProps, F as useDefaultRenderTool, Ft as CopilotChatReasoningMessage, G as ReactHumanInTheLoop, Gt as ToolsMenuItem, H as InterruptHandlerProps, Ht as CopilotChatToolCallsViewProps, I as useRenderTool, It as CopilotChatReasoningMessageProps, J as ReactToolCallRenderer, Jt as CopilotChatConfigurationValue, K as ReactFrontendTool, Kt as CopilotChatConfigurationProvider, L as useComponent, Lt as CopilotChatUserMessage, M as UseAgentUpdate, Mt as CopilotChatSuggestionViewProps, N as useAgent, Nt as CopilotChatSuggestionPill, O as AgentContextInput, Ot as CopilotChatViewProps, P as useHumanInTheLoop, Pt as CopilotChatSuggestionPillProps, Q as useRenderToolCall, Qt as AudioRecorderState, R as useFrontendTool, Rt as CopilotChatUserMessageProps, S as UseThreadsResult, St as CopilotChatToggleButtonProps, T as useInterrupt, Tt as CopilotChat, U as InterruptRenderProps, Ut as CopilotChatInput, V as InterruptEvent, Vt as CopilotChatToolCallsView, W as defineToolCallRenderer, Wt as CopilotChatInputProps, X as ReactCustomMessageRenderer, Xt as useCopilotChatConfiguration, Y as useRenderCustomMessages, Yt as CopilotChatLabels, Z as ReactCustomMessageRendererPosition, Zt as AudioRecorderError, _ as UseAttachmentsProps, _t as CopilotSidebarView, a as A2UIUserAction, at as WildcardToolCallRender, b as Thread, bt as CopilotModalHeaderProps, c as SandboxFunctionsContext, ct as AttachmentsConfig, d as CopilotKitProvider, dt as CopilotPopup, et as MCPAppsActivityContentSchema, f as CopilotKitProviderProps, ft as CopilotPopupProps, g as CopilotKitCoreReactSubscriber, gt as CopilotPopupViewProps, h as CopilotKitCoreReactConfig, ht as CopilotPopupView, i as A2UIMessageRendererOptions, it as CopilotKitInspectorProps, j as useCapabilities, jt as CopilotChatSuggestionView, k as JsonSerializable, kt as CopilotChatMessageView, l as useSandboxFunctions, lt as CopilotChatAttachmentRenderer, m as CopilotKitCoreReact, mt as CopilotSidebarProps, nt as MCPAppsActivityType, o as createA2UIMessageRenderer, ot as Attachment, p as useCopilotKit, pt as CopilotSidebar, q as ReactActivityMessageRenderer, qt as CopilotChatConfigurationProviderProps, r as CopilotKitProps, rt as CopilotKitInspector, s as InspectorAnchor, st as AttachmentModality, t as CopilotKit, tt as MCPAppsActivityRenderer, u as CopilotKitContextValue, ut as CopilotChatAttachmentQueue, v as UseAttachmentsReturn, vt as CopilotSidebarViewProps, w as UseInterruptConfig, wt as DefaultOpenIcon, x as UseThreadsInput, xt as CopilotChatToggleButton, y as useAttachments, yt as CopilotModalHeader, z as useRenderActivityMessage, zt as CopilotChatAssistantMessage } from "../copilotkit-opur-20s.mjs";
2
2
  import "./index.css";
3
3
  import { Theme as A2UITheme, defaultTheme as a2uiDefaultTheme } from "@copilotkit/a2ui-renderer";
4
4
  export * from "@copilotkit/core";
5
5
  export * from "@ag-ui/client";
6
- export { type A2UIMessageRendererOptions, type A2UITheme, type A2UIUserAction, AgentContextInput, Attachment, AttachmentModality, AttachmentsConfig, AudioRecorderError, AudioRecorderState, CopilotChat, CopilotChatAssistantMessage, CopilotChatAssistantMessageProps, CopilotChatAttachmentQueue, CopilotChatAttachmentRenderer, CopilotChatAudioRecorder, CopilotChatConfigurationProvider, CopilotChatConfigurationProviderProps, CopilotChatConfigurationValue, CopilotChatInput, CopilotChatInputProps, CopilotChatLabels, CopilotChatMessageView, CopilotChatMessageViewProps, CopilotChatProps, CopilotChatReasoningMessage, CopilotChatReasoningMessageProps, CopilotChatSuggestionPill, CopilotChatSuggestionPillProps, CopilotChatSuggestionView, CopilotChatSuggestionViewProps, CopilotChatToggleButton, DefaultCloseIcon as CopilotChatToggleButtonCloseIcon, DefaultOpenIcon as CopilotChatToggleButtonOpenIcon, CopilotChatToggleButtonProps, CopilotChatToolCallsView, CopilotChatToolCallsViewProps, CopilotChatUserMessage, CopilotChatUserMessageProps, CopilotChatView, CopilotChatViewProps, CopilotKit, CopilotKitContextValue, CopilotKitCoreReact, CopilotKitCoreReactConfig, CopilotKitCoreReactSubscriber, CopilotKitInspector, CopilotKitInspectorProps, type CopilotKitProps, CopilotKitProvider, CopilotKitProviderProps, CopilotModalHeader, CopilotModalHeaderProps, CopilotPopup, CopilotPopupProps, CopilotPopupView, CopilotPopupViewProps, CopilotSidebar, CopilotSidebarProps, CopilotSidebarView, CopilotSidebarViewProps, InspectorAnchor, InterruptEvent, InterruptHandlerProps, InterruptRenderProps, JsonSerializable, MCPAppsActivityContent, MCPAppsActivityContentSchema, MCPAppsActivityRenderer, MCPAppsActivityType, ReactActivityMessageRenderer, ReactCustomMessageRenderer, ReactCustomMessageRendererPosition, ReactFrontendTool, ReactHumanInTheLoop, ReactToolCallRenderer, SandboxFunction, SandboxFunctionsContext, Thread, ToolsMenuItem, UseAgentUpdate, UseAttachmentsProps, UseAttachmentsReturn, UseInterruptConfig, UseThreadsInput, UseThreadsResult, WildcardToolCallRender, a2uiDefaultTheme, createA2UIMessageRenderer, defineToolCallRenderer, useAgent, useAgentContext, useAttachments, useComponent, useConfigureSuggestions, useCopilotChatConfiguration, useCopilotKit, useDefaultRenderTool, useFrontendTool, useHumanInTheLoop, useInterrupt, useRenderActivityMessage, useRenderCustomMessages, useRenderTool, useRenderToolCall, useSandboxFunctions, useSuggestions, useThreads };
6
+ export { type A2UIMessageRendererOptions, type A2UITheme, type A2UIUserAction, AgentContextInput, Attachment, AttachmentModality, AttachmentsConfig, AudioRecorderError, AudioRecorderState, CopilotChat, CopilotChatAssistantMessage, CopilotChatAssistantMessageProps, CopilotChatAttachmentQueue, CopilotChatAttachmentRenderer, CopilotChatAudioRecorder, CopilotChatConfigurationProvider, CopilotChatConfigurationProviderProps, CopilotChatConfigurationValue, CopilotChatInput, CopilotChatInputProps, CopilotChatLabels, CopilotChatMessageView, CopilotChatMessageViewProps, CopilotChatProps, CopilotChatReasoningMessage, CopilotChatReasoningMessageProps, CopilotChatSuggestionPill, CopilotChatSuggestionPillProps, CopilotChatSuggestionView, CopilotChatSuggestionViewProps, CopilotChatToggleButton, DefaultCloseIcon as CopilotChatToggleButtonCloseIcon, DefaultOpenIcon as CopilotChatToggleButtonOpenIcon, CopilotChatToggleButtonProps, CopilotChatToolCallsView, CopilotChatToolCallsViewProps, CopilotChatUserMessage, CopilotChatUserMessageProps, CopilotChatView, CopilotChatViewProps, CopilotKit, CopilotKitContextValue, CopilotKitCoreReact, CopilotKitCoreReactConfig, CopilotKitCoreReactSubscriber, CopilotKitInspector, CopilotKitInspectorProps, type CopilotKitProps, CopilotKitProvider, CopilotKitProviderProps, CopilotModalHeader, CopilotModalHeaderProps, CopilotPopup, CopilotPopupProps, CopilotPopupView, CopilotPopupViewProps, CopilotSidebar, CopilotSidebarProps, CopilotSidebarView, CopilotSidebarViewProps, InspectorAnchor, InterruptEvent, InterruptHandlerProps, InterruptRenderProps, JsonSerializable, MCPAppsActivityContent, MCPAppsActivityContentSchema, MCPAppsActivityRenderer, MCPAppsActivityType, ReactActivityMessageRenderer, ReactCustomMessageRenderer, ReactCustomMessageRendererPosition, ReactFrontendTool, ReactHumanInTheLoop, ReactToolCallRenderer, SandboxFunction, SandboxFunctionsContext, Thread, ToolsMenuItem, UseAgentUpdate, UseAttachmentsProps, UseAttachmentsReturn, UseInterruptConfig, UseThreadsInput, UseThreadsResult, WildcardToolCallRender, a2uiDefaultTheme, createA2UIMessageRenderer, defineToolCallRenderer, useAgent, useAgentContext, useAttachments, useCapabilities, useComponent, useConfigureSuggestions, useCopilotChatConfiguration, useCopilotKit, useDefaultRenderTool, useFrontendTool, useHumanInTheLoop, useInterrupt, useRenderActivityMessage, useRenderCustomMessages, useRenderTool, useRenderToolCall, useSandboxFunctions, useSuggestions, useThreads };
package/dist/v2/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { $ as useCopilotKit, A as CopilotChatSuggestionView, B as useConfigureSuggestions, C as CopilotChatToggleButton, D as CopilotChatView_default, E as CopilotChat, F as CopilotChatAssistantMessage_default, G as useComponent, H as useHumanInTheLoop, I as CopilotChatToolCallsView, J as useRenderCustomMessages, K as useFrontendTool, L as useAttachments, M as CopilotChatReasoningMessage_default, N as CopilotChatUserMessage_default, O as CopilotChatAttachmentQueue, P as CopilotChatAttachmentRenderer, Q as CopilotKitProvider, R as useThreads, S as CopilotModalHeader, T as DefaultOpenIcon, U as useDefaultRenderTool, V as useSuggestions, W as useRenderTool, X as useAgent, Y as UseAgentUpdate, Z as useRenderToolCall, _ as WildcardToolCallRender, at as useSandboxFunctions, b as CopilotPopupView, ct as MCPAppsActivityType, dt as AudioRecorderError, et as CopilotKitCoreReact, ft as CopilotChatAudioRecorder, it as SandboxFunctionsContext, j as CopilotChatSuggestionPill, k as CopilotChatMessageView, lt as CopilotKitInspector, mt as useCopilotChatConfiguration, nt as defineToolCallRenderer, ot as MCPAppsActivityContentSchema, pt as CopilotChatConfigurationProvider, q as useRenderActivityMessage, rt as createA2UIMessageRenderer, st as MCPAppsActivityRenderer, t as CopilotKit, tt as useAgentContext, ut as CopilotChatInput_default, v as CopilotPopup, w as DefaultCloseIcon, x as CopilotSidebarView, y as CopilotSidebar, z as useInterrupt } from "../copilotkit-Cd-NrDyp.mjs";
3
+ import { $ as CopilotKitProvider, A as CopilotChatSuggestionView, B as useConfigureSuggestions, C as CopilotChatToggleButton, D as CopilotChatView_default, E as CopilotChat, F as CopilotChatAssistantMessage_default, G as useRenderTool, H as useCapabilities, I as CopilotChatToolCallsView, J as useRenderActivityMessage, K as useComponent, L as useAttachments, M as CopilotChatReasoningMessage_default, N as CopilotChatUserMessage_default, O as CopilotChatAttachmentQueue, P as CopilotChatAttachmentRenderer, Q as useRenderToolCall, R as useThreads, S as CopilotModalHeader, T as DefaultOpenIcon, U as useHumanInTheLoop, V as useSuggestions, W as useDefaultRenderTool, X as UseAgentUpdate, Y as useRenderCustomMessages, Z as useAgent, _ as WildcardToolCallRender, at as SandboxFunctionsContext, b as CopilotPopupView, ct as MCPAppsActivityRenderer, dt as CopilotChatInput_default, et as useCopilotKit, ft as AudioRecorderError, ht as useCopilotChatConfiguration, it as createA2UIMessageRenderer, j as CopilotChatSuggestionPill, k as CopilotChatMessageView, lt as MCPAppsActivityType, mt as CopilotChatConfigurationProvider, nt as useAgentContext, ot as useSandboxFunctions, pt as CopilotChatAudioRecorder, q as useFrontendTool, rt as defineToolCallRenderer, st as MCPAppsActivityContentSchema, t as CopilotKit, tt as CopilotKitCoreReact, ut as CopilotKitInspector, v as CopilotPopup, w as DefaultCloseIcon, x as CopilotSidebarView, y as CopilotSidebar, z as useInterrupt } from "../copilotkit-Bm4ox8G0.mjs";
4
4
  import "./index.css";
5
5
  import { defaultTheme as a2uiDefaultTheme } from "@copilotkit/a2ui-renderer";
6
6
 
@@ -8,4 +8,4 @@ export * from "@copilotkit/core"
8
8
 
9
9
  export * from "@ag-ui/client"
10
10
 
11
- export { AudioRecorderError, CopilotChat, CopilotChatAssistantMessage_default as CopilotChatAssistantMessage, CopilotChatAttachmentQueue, CopilotChatAttachmentRenderer, CopilotChatAudioRecorder, CopilotChatConfigurationProvider, CopilotChatInput_default as CopilotChatInput, CopilotChatMessageView, CopilotChatReasoningMessage_default as CopilotChatReasoningMessage, CopilotChatSuggestionPill, CopilotChatSuggestionView, CopilotChatToggleButton, DefaultCloseIcon as CopilotChatToggleButtonCloseIcon, DefaultOpenIcon as CopilotChatToggleButtonOpenIcon, CopilotChatToolCallsView, CopilotChatUserMessage_default as CopilotChatUserMessage, CopilotChatView_default as CopilotChatView, CopilotKit, CopilotKitCoreReact, CopilotKitInspector, CopilotKitProvider, CopilotModalHeader, CopilotPopup, CopilotPopupView, CopilotSidebar, CopilotSidebarView, MCPAppsActivityContentSchema, MCPAppsActivityRenderer, MCPAppsActivityType, SandboxFunctionsContext, UseAgentUpdate, WildcardToolCallRender, a2uiDefaultTheme, createA2UIMessageRenderer, defineToolCallRenderer, useAgent, useAgentContext, useAttachments, useComponent, useConfigureSuggestions, useCopilotChatConfiguration, useCopilotKit, useDefaultRenderTool, useFrontendTool, useHumanInTheLoop, useInterrupt, useRenderActivityMessage, useRenderCustomMessages, useRenderTool, useRenderToolCall, useSandboxFunctions, useSuggestions, useThreads };
11
+ export { AudioRecorderError, CopilotChat, CopilotChatAssistantMessage_default as CopilotChatAssistantMessage, CopilotChatAttachmentQueue, CopilotChatAttachmentRenderer, CopilotChatAudioRecorder, CopilotChatConfigurationProvider, CopilotChatInput_default as CopilotChatInput, CopilotChatMessageView, CopilotChatReasoningMessage_default as CopilotChatReasoningMessage, CopilotChatSuggestionPill, CopilotChatSuggestionView, CopilotChatToggleButton, DefaultCloseIcon as CopilotChatToggleButtonCloseIcon, DefaultOpenIcon as CopilotChatToggleButtonOpenIcon, CopilotChatToolCallsView, CopilotChatUserMessage_default as CopilotChatUserMessage, CopilotChatView_default as CopilotChatView, CopilotKit, CopilotKitCoreReact, CopilotKitInspector, CopilotKitProvider, CopilotModalHeader, CopilotPopup, CopilotPopupView, CopilotSidebar, CopilotSidebarView, MCPAppsActivityContentSchema, MCPAppsActivityRenderer, MCPAppsActivityType, SandboxFunctionsContext, UseAgentUpdate, WildcardToolCallRender, a2uiDefaultTheme, createA2UIMessageRenderer, defineToolCallRenderer, useAgent, useAgentContext, useAttachments, useCapabilities, useComponent, useConfigureSuggestions, useCopilotChatConfiguration, useCopilotKit, useDefaultRenderTool, useFrontendTool, useHumanInTheLoop, useInterrupt, useRenderActivityMessage, useRenderCustomMessages, useRenderTool, useRenderToolCall, useSandboxFunctions, useSuggestions, useThreads };
@@ -3108,7 +3108,7 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
3108
3108
  }, [value, warningMessage]);
3109
3109
  return value;
3110
3110
  }
3111
- 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 }) => {
3111
+ 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 }) => {
3112
3112
  var _openGenerativeUI$des;
3113
3113
  const [shouldRenderInspector, setShouldRenderInspector] = (0, react.useState)(false);
3114
3114
  const [runtimeA2UIEnabled, setRuntimeA2UIEnabled] = (0, react.useState)(false);
@@ -3170,6 +3170,7 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
3170
3170
  ...selfManagedAgents
3171
3171
  }), [agents, selfManagedAgents]);
3172
3172
  const hasLocalAgents = mergedAgents && Object.keys(mergedAgents).length > 0;
3173
+ const headers = typeof headersProp === "function" ? headersProp() : headersProp;
3173
3174
  const mergedHeaders = (0, react.useMemo)(() => {
3174
3175
  if (!resolvedPublicKey) return headers;
3175
3176
  if (headers[HEADER_NAME]) return headers;
@@ -3670,6 +3671,17 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
3670
3671
  const handlers = {};
3671
3672
  let timerId = null;
3672
3673
  let active = true;
3674
+ let batchScheduled = false;
3675
+ const batchedForceUpdate = () => {
3676
+ if (!active) return;
3677
+ if (!batchScheduled) {
3678
+ batchScheduled = true;
3679
+ queueMicrotask(() => {
3680
+ batchScheduled = false;
3681
+ if (active) forceUpdate();
3682
+ });
3683
+ }
3684
+ };
3673
3685
  if (updateFlags.includes(UseAgentUpdate.OnMessagesChanged)) {
3674
3686
  const ms = effectiveThrottleMs;
3675
3687
  if (ms > 0) {
@@ -3694,11 +3706,11 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
3694
3706
  handlers.onMessagesChanged = throttledNotify;
3695
3707
  } else handlers.onMessagesChanged = forceUpdate;
3696
3708
  }
3697
- if (updateFlags.includes(UseAgentUpdate.OnStateChanged)) handlers.onStateChanged = forceUpdate;
3709
+ if (updateFlags.includes(UseAgentUpdate.OnStateChanged)) handlers.onStateChanged = batchedForceUpdate;
3698
3710
  if (updateFlags.includes(UseAgentUpdate.OnRunStatusChanged)) {
3699
- handlers.onRunInitialized = forceUpdate;
3700
- handlers.onRunFinalized = forceUpdate;
3701
- handlers.onRunFailed = forceUpdate;
3711
+ handlers.onRunInitialized = batchedForceUpdate;
3712
+ handlers.onRunFinalized = batchedForceUpdate;
3713
+ handlers.onRunFailed = batchedForceUpdate;
3702
3714
  }
3703
3715
  const subscription = agent.subscribe(handlers);
3704
3716
  return () => {
@@ -4240,6 +4252,24 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
4240
4252
  ]);
4241
4253
  }
4242
4254
 
4255
+ //#endregion
4256
+ //#region src/v2/hooks/use-capabilities.tsx
4257
+ /**
4258
+ * Returns the capabilities declared by the given agent (or the default agent).
4259
+ * Capabilities are populated from the runtime `/info` response at connection
4260
+ * time. The hook reads them synchronously from the agent instance — there is
4261
+ * no separate loading state, but the value will be `undefined` until the
4262
+ * runtime handshake completes.
4263
+ *
4264
+ * @param agentId - Optional agent ID. If omitted, uses the default agent.
4265
+ * @returns The agent's capabilities, or `undefined` if the agent doesn't
4266
+ * declare capabilities.
4267
+ */
4268
+ function useCapabilities(agentId) {
4269
+ const { agent } = useAgent({ agentId });
4270
+ if (agent && "capabilities" in agent) return agent.capabilities;
4271
+ }
4272
+
4243
4273
  //#endregion
4244
4274
  //#region src/v2/hooks/use-suggestions.tsx
4245
4275
  function useSuggestions({ agentId } = {}) {
@@ -4917,11 +4947,8 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
4917
4947
  useKatexStyles();
4918
4948
  const boundMarkdownRenderer = renderSlot(markdownRenderer, CopilotChatAssistantMessage.MarkdownRenderer, { content: message.content || "" });
4919
4949
  const boundCopyButton = renderSlot(copyButton, CopilotChatAssistantMessage.CopyButton, { onClick: async () => {
4920
- if (message.content) try {
4921
- await navigator.clipboard.writeText(message.content);
4922
- } catch (err) {
4923
- console.error("Failed to copy message:", err);
4924
- }
4950
+ if (message.content) return await (0, _copilotkit_shared.copyToClipboard)(message.content);
4951
+ return false;
4925
4952
  } });
4926
4953
  const boundThumbsUpButton = renderSlot(thumbsUpButton, CopilotChatAssistantMessage.ThumbsUpButton, { onClick: onThumbsUp });
4927
4954
  const boundThumbsDownButton = renderSlot(thumbsDownButton, CopilotChatAssistantMessage.ThumbsDownButton, { onClick: onThumbsDown });
@@ -5021,14 +5048,17 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
5021
5048
  if (timerRef.current !== null) clearTimeout(timerRef.current);
5022
5049
  };
5023
5050
  }, []);
5024
- const handleClick = (event) => {
5025
- setCopied(true);
5026
- if (timerRef.current !== null) clearTimeout(timerRef.current);
5027
- timerRef.current = setTimeout(() => {
5028
- timerRef.current = null;
5029
- setCopied(false);
5030
- }, 2e3);
5031
- if (onClick) onClick(event);
5051
+ const handleClick = async (event) => {
5052
+ let success = false;
5053
+ if (onClick) success = await Promise.resolve(onClick(event)) === true;
5054
+ if (success) {
5055
+ setCopied(true);
5056
+ if (timerRef.current !== null) clearTimeout(timerRef.current);
5057
+ timerRef.current = setTimeout(() => {
5058
+ timerRef.current = null;
5059
+ setCopied(false);
5060
+ }, 2e3);
5061
+ }
5032
5062
  };
5033
5063
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarButton, {
5034
5064
  "data-testid": "copilot-copy-button",
@@ -5190,11 +5220,8 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
5190
5220
  const mediaParts = (0, react.useMemo)(() => getMediaParts(message.content), [message.content]);
5191
5221
  const BoundMessageRenderer = renderSlot(messageRenderer, CopilotChatUserMessage.MessageRenderer, { content: flattenedContent });
5192
5222
  const BoundCopyButton = renderSlot(copyButton, CopilotChatUserMessage.CopyButton, { onClick: async () => {
5193
- if (flattenedContent) try {
5194
- await navigator.clipboard.writeText(flattenedContent);
5195
- } catch (err) {
5196
- console.error("Failed to copy message:", err);
5197
- }
5223
+ if (flattenedContent) return await (0, _copilotkit_shared.copyToClipboard)(flattenedContent);
5224
+ return false;
5198
5225
  } });
5199
5226
  const BoundEditButton = renderSlot(editButton, CopilotChatUserMessage.EditButton, { onClick: () => onEditMessage === null || onEditMessage === void 0 ? void 0 : onEditMessage({ message }) });
5200
5227
  const BoundBranchNavigation = renderSlot(branchNavigation, CopilotChatUserMessage.BranchNavigation, {
@@ -5284,10 +5311,13 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
5284
5311
  const config = useCopilotChatConfiguration();
5285
5312
  const labels = (_config$labels = config === null || config === void 0 ? void 0 : config.labels) !== null && _config$labels !== void 0 ? _config$labels : CopilotChatDefaultLabels;
5286
5313
  const [copied, setCopied] = (0, react.useState)(false);
5287
- const handleClick = (event) => {
5288
- setCopied(true);
5289
- setTimeout(() => setCopied(false), 2e3);
5290
- if (onClick) onClick(event);
5314
+ const handleClick = async (event) => {
5315
+ let success = false;
5316
+ if (onClick) success = await Promise.resolve(onClick(event)) === true;
5317
+ if (success) {
5318
+ setCopied(true);
5319
+ setTimeout(() => setCopied(false), 2e3);
5320
+ }
5291
5321
  };
5292
5322
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarButton, {
5293
5323
  "data-testid": "copilot-user-copy-button",
@@ -5397,17 +5427,24 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
5397
5427
  return () => clearInterval(timer);
5398
5428
  }, [isStreaming]);
5399
5429
  const [isOpen, setIsOpen] = (0, react.useState)(isStreaming);
5430
+ const userToggledRef = (0, react.useRef)(false);
5400
5431
  (0, react.useEffect)(() => {
5401
- if (isStreaming) setIsOpen(true);
5402
- else setIsOpen(false);
5432
+ if (isStreaming) {
5433
+ userToggledRef.current = false;
5434
+ setIsOpen(true);
5435
+ } else if (!userToggledRef.current) setIsOpen(false);
5403
5436
  }, [isStreaming]);
5437
+ const handleToggle = hasContent ? () => {
5438
+ userToggledRef.current = true;
5439
+ setIsOpen((prev) => !prev);
5440
+ } : void 0;
5404
5441
  const label = isStreaming ? "Thinking…" : `Thought for ${formatDuration(elapsed)}`;
5405
5442
  const boundHeader = renderSlot(header, CopilotChatReasoningMessage.Header, {
5406
5443
  isOpen,
5407
5444
  label,
5408
5445
  hasContent,
5409
5446
  isStreaming,
5410
- onClick: hasContent ? () => setIsOpen((prev) => !prev) : void 0
5447
+ onClick: handleToggle
5411
5448
  });
5412
5449
  const boundContent = renderSlot(contentView, CopilotChatReasoningMessage.Content, {
5413
5450
  isStreaming,
@@ -8139,6 +8176,20 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
8139
8176
  /**
8140
8177
  * An internal context to separate the messages state (which is constantly changing) from the rest of CopilotKit context
8141
8178
  */
8179
+ /**
8180
+ * Determine whether a GraphQL error should be suppressed based on its visibility
8181
+ * and whether the dev console is active.
8182
+ *
8183
+ * Returns `null` when the error should be surfaced to the UI, or a log prefix
8184
+ * string when the error should be suppressed (logged to console only).
8185
+ *
8186
+ * Exported for unit testing.
8187
+ */
8188
+ function getErrorSuppression(visibility, isDev) {
8189
+ if (visibility === _copilotkit_shared.ErrorVisibility.SILENT) return "CopilotKit Silent Error:";
8190
+ if (!isDev && visibility === _copilotkit_shared.ErrorVisibility.DEV_ONLY) return "CopilotKit Error (hidden in production):";
8191
+ return null;
8192
+ }
8142
8193
  const MessagesTapContext = (0, react.createContext)(null);
8143
8194
  function useMessagesTap() {
8144
8195
  const tap = (0, react.useContext)(MessagesTapContext);
@@ -8223,13 +8274,9 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
8223
8274
  const graphQLErrors = error.graphQLErrors;
8224
8275
  const routeError = (gqlError) => {
8225
8276
  const extensions = gqlError.extensions;
8226
- const visibility = extensions === null || extensions === void 0 ? void 0 : extensions.visibility;
8227
- if (!shouldShowDevConsole(showDevConsole)) {
8228
- console.error("CopilotKit Error (hidden in production):", gqlError.message);
8229
- return;
8230
- }
8231
- if (visibility === _copilotkit_shared.ErrorVisibility.SILENT) {
8232
- console.error("CopilotKit Silent Error:", gqlError.message);
8277
+ const suppression = getErrorSuppression(extensions === null || extensions === void 0 ? void 0 : extensions.visibility, shouldShowDevConsole(showDevConsole));
8278
+ if (suppression) {
8279
+ console.error(suppression, gqlError.message);
8233
8280
  return;
8234
8281
  }
8235
8282
  const ckError = createStructuredError(gqlError);
@@ -8246,8 +8293,7 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
8246
8293
  }
8247
8294
  };
8248
8295
  graphQLErrors.forEach(routeError);
8249
- } else if (!shouldShowDevConsole(showDevConsole)) console.error("CopilotKit Error (hidden in production):", error);
8250
- else {
8296
+ } else {
8251
8297
  const fallbackError = new _copilotkit_shared.CopilotKitError({
8252
8298
  message: (error === null || error === void 0 ? void 0 : error.message) || String(error),
8253
8299
  code: _copilotkit_shared.CopilotKitErrorCode.UNKNOWN
@@ -9227,7 +9273,7 @@ window.parent.postMessage({jsonrpc:"2.0",method:"ui/notifications/sandbox-proxy-
9227
9273
  publicApiKey,
9228
9274
  ...cloud ? { cloud } : {},
9229
9275
  chatApiEndpoint,
9230
- headers: props.headers || {},
9276
+ headers: typeof props.headers === "function" ? props.headers() : props.headers || {},
9231
9277
  properties: props.properties || {},
9232
9278
  transcribeAudioUrl: props.transcribeAudioUrl,
9233
9279
  textToSpeechUrl: props.textToSpeechUrl,
@@ -9644,6 +9690,7 @@ exports.defineToolCallRenderer = defineToolCallRenderer;
9644
9690
  exports.useAgent = useAgent;
9645
9691
  exports.useAgentContext = useAgentContext;
9646
9692
  exports.useAttachments = useAttachments;
9693
+ exports.useCapabilities = useCapabilities;
9647
9694
  exports.useComponent = useComponent;
9648
9695
  exports.useConfigureSuggestions = useConfigureSuggestions;
9649
9696
  exports.useCopilotChatConfiguration = useCopilotChatConfiguration;