@copilotkitnext/react 0.0.22-alpha.4 → 0.0.22-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +635 -46
- package/dist/index.d.ts +635 -46
- package/dist/index.js +325 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4286 -109
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/chunk-32YJ5VJ4.mjs +0 -157
- package/dist/chunk-32YJ5VJ4.mjs.map +0 -1
- package/dist/chunk-36HFWACS.mjs +0 -1
- package/dist/chunk-36HFWACS.mjs.map +0 -1
- package/dist/chunk-46BZRXWT.mjs +0 -16
- package/dist/chunk-46BZRXWT.mjs.map +0 -1
- package/dist/chunk-4UDBR75C.mjs +0 -106
- package/dist/chunk-4UDBR75C.mjs.map +0 -1
- package/dist/chunk-4XJK5IVQ.mjs +0 -83
- package/dist/chunk-4XJK5IVQ.mjs.map +0 -1
- package/dist/chunk-5JNWVLQI.mjs +0 -72
- package/dist/chunk-5JNWVLQI.mjs.map +0 -1
- package/dist/chunk-5SC3CO5Q.mjs +0 -69
- package/dist/chunk-5SC3CO5Q.mjs.map +0 -1
- package/dist/chunk-6VUKDHOD.mjs +0 -1
- package/dist/chunk-6VUKDHOD.mjs.map +0 -1
- package/dist/chunk-7HM7CU5A.mjs +0 -122
- package/dist/chunk-7HM7CU5A.mjs.map +0 -1
- package/dist/chunk-AEFM73CL.mjs +0 -32
- package/dist/chunk-AEFM73CL.mjs.map +0 -1
- package/dist/chunk-AI3Z3CHN.mjs +0 -97
- package/dist/chunk-AI3Z3CHN.mjs.map +0 -1
- package/dist/chunk-AXFRCGH6.mjs +0 -107
- package/dist/chunk-AXFRCGH6.mjs.map +0 -1
- package/dist/chunk-BNT754Z2.mjs +0 -185
- package/dist/chunk-BNT754Z2.mjs.map +0 -1
- package/dist/chunk-BT6C5OPU.mjs +0 -278
- package/dist/chunk-BT6C5OPU.mjs.map +0 -1
- package/dist/chunk-CDSO65ZY.mjs +0 -157
- package/dist/chunk-CDSO65ZY.mjs.map +0 -1
- package/dist/chunk-CGLGXQAU.mjs +0 -78
- package/dist/chunk-CGLGXQAU.mjs.map +0 -1
- package/dist/chunk-DVUQO72Z.mjs +0 -1
- package/dist/chunk-DVUQO72Z.mjs.map +0 -1
- package/dist/chunk-E56GYBP3.mjs +0 -101
- package/dist/chunk-E56GYBP3.mjs.map +0 -1
- package/dist/chunk-ETWJDCGE.mjs +0 -1
- package/dist/chunk-ETWJDCGE.mjs.map +0 -1
- package/dist/chunk-FIBK3DYE.mjs +0 -26
- package/dist/chunk-FIBK3DYE.mjs.map +0 -1
- package/dist/chunk-FVURPXQK.mjs +0 -45
- package/dist/chunk-FVURPXQK.mjs.map +0 -1
- package/dist/chunk-FZR2XQKR.mjs +0 -44
- package/dist/chunk-FZR2XQKR.mjs.map +0 -1
- package/dist/chunk-GK4NXPLC.mjs +0 -60
- package/dist/chunk-GK4NXPLC.mjs.map +0 -1
- package/dist/chunk-IA4CLXDM.mjs +0 -76
- package/dist/chunk-IA4CLXDM.mjs.map +0 -1
- package/dist/chunk-IICUCI5S.mjs +0 -43
- package/dist/chunk-IICUCI5S.mjs.map +0 -1
- package/dist/chunk-JLVGSNAO.mjs +0 -311
- package/dist/chunk-JLVGSNAO.mjs.map +0 -1
- package/dist/chunk-JWOIINVV.mjs +0 -237
- package/dist/chunk-JWOIINVV.mjs.map +0 -1
- package/dist/chunk-KCVDFZJX.mjs +0 -873
- package/dist/chunk-KCVDFZJX.mjs.map +0 -1
- package/dist/chunk-KPRUSQ3K.mjs +0 -1
- package/dist/chunk-KPRUSQ3K.mjs.map +0 -1
- package/dist/chunk-MWC5OV7Z.mjs +0 -1
- package/dist/chunk-MWC5OV7Z.mjs.map +0 -1
- package/dist/chunk-N5EP5OD5.mjs +0 -1
- package/dist/chunk-N5EP5OD5.mjs.map +0 -1
- package/dist/chunk-N5HC66HU.mjs +0 -311
- package/dist/chunk-N5HC66HU.mjs.map +0 -1
- package/dist/chunk-NB2GZAKG.mjs +0 -131
- package/dist/chunk-NB2GZAKG.mjs.map +0 -1
- package/dist/chunk-NB4DFAZH.mjs +0 -185
- package/dist/chunk-NB4DFAZH.mjs.map +0 -1
- package/dist/chunk-NNAYEAP2.mjs +0 -49
- package/dist/chunk-NNAYEAP2.mjs.map +0 -1
- package/dist/chunk-NNPKBGD6.mjs +0 -37
- package/dist/chunk-NNPKBGD6.mjs.map +0 -1
- package/dist/chunk-OMPVTGXH.mjs +0 -122
- package/dist/chunk-OMPVTGXH.mjs.map +0 -1
- package/dist/chunk-R5OLAA3L.mjs +0 -135
- package/dist/chunk-R5OLAA3L.mjs.map +0 -1
- package/dist/chunk-RF2CGPHQ.mjs +0 -215
- package/dist/chunk-RF2CGPHQ.mjs.map +0 -1
- package/dist/chunk-RGD2L3Z4.mjs +0 -96
- package/dist/chunk-RGD2L3Z4.mjs.map +0 -1
- package/dist/chunk-RK5P2LG6.mjs +0 -57
- package/dist/chunk-RK5P2LG6.mjs.map +0 -1
- package/dist/chunk-RRXDJCXI.mjs +0 -60
- package/dist/chunk-RRXDJCXI.mjs.map +0 -1
- package/dist/chunk-SPDE34WC.mjs +0 -283
- package/dist/chunk-SPDE34WC.mjs.map +0 -1
- package/dist/chunk-TAUOEJH2.mjs +0 -120
- package/dist/chunk-TAUOEJH2.mjs.map +0 -1
- package/dist/chunk-TBE7ZI5G.mjs +0 -45
- package/dist/chunk-TBE7ZI5G.mjs.map +0 -1
- package/dist/chunk-UOX5D73C.mjs +0 -22
- package/dist/chunk-UOX5D73C.mjs.map +0 -1
- package/dist/chunk-US4KNAAV.mjs +0 -1
- package/dist/chunk-US4KNAAV.mjs.map +0 -1
- package/dist/chunk-UZB3CTOY.mjs +0 -873
- package/dist/chunk-UZB3CTOY.mjs.map +0 -1
- package/dist/chunk-VBI6JXPC.mjs +0 -1
- package/dist/chunk-VBI6JXPC.mjs.map +0 -1
- package/dist/chunk-VVAXSF3M.mjs +0 -61
- package/dist/chunk-VVAXSF3M.mjs.map +0 -1
- package/dist/chunk-XO4IRKSC.mjs +0 -11
- package/dist/chunk-XO4IRKSC.mjs.map +0 -1
- package/dist/chunk-XU5CEPYQ.mjs +0 -75
- package/dist/chunk-XU5CEPYQ.mjs.map +0 -1
- package/dist/chunk-YPH4BHOY.mjs +0 -39
- package/dist/chunk-YPH4BHOY.mjs.map +0 -1
- package/dist/chunk-YZUPVMHC.mjs +0 -1
- package/dist/chunk-YZUPVMHC.mjs.map +0 -1
- package/dist/components/CopilotKitInspector.d.mts +0 -13
- package/dist/components/CopilotKitInspector.d.ts +0 -13
- package/dist/components/CopilotKitInspector.js +0 -69
- package/dist/components/CopilotKitInspector.js.map +0 -1
- package/dist/components/CopilotKitInspector.mjs +0 -7
- package/dist/components/CopilotKitInspector.mjs.map +0 -1
- package/dist/components/WildcardToolCallRender.d.mts +0 -7
- package/dist/components/WildcardToolCallRender.d.ts +0 -7
- package/dist/components/WildcardToolCallRender.js +0 -106
- package/dist/components/WildcardToolCallRender.js.map +0 -1
- package/dist/components/WildcardToolCallRender.mjs +0 -8
- package/dist/components/WildcardToolCallRender.mjs.map +0 -1
- package/dist/components/chat/CopilotChat.d.mts +0 -30
- package/dist/components/chat/CopilotChat.d.ts +0 -30
- package/dist/components/chat/CopilotChat.js +0 -2934
- package/dist/components/chat/CopilotChat.js.map +0 -1
- package/dist/components/chat/CopilotChat.mjs +0 -37
- package/dist/components/chat/CopilotChat.mjs.map +0 -1
- package/dist/components/chat/CopilotChatAssistantMessage.d.mts +0 -45
- package/dist/components/chat/CopilotChatAssistantMessage.d.ts +0 -45
- package/dist/components/chat/CopilotChatAssistantMessage.js +0 -735
- package/dist/components/chat/CopilotChatAssistantMessage.js.map +0 -1
- package/dist/components/chat/CopilotChatAssistantMessage.mjs +0 -29
- package/dist/components/chat/CopilotChatAssistantMessage.mjs.map +0 -1
- package/dist/components/chat/CopilotChatAudioRecorder.d.mts +0 -11
- package/dist/components/chat/CopilotChatAudioRecorder.d.ts +0 -11
- package/dist/components/chat/CopilotChatAudioRecorder.js +0 -131
- package/dist/components/chat/CopilotChatAudioRecorder.js.map +0 -1
- package/dist/components/chat/CopilotChatAudioRecorder.mjs +0 -9
- package/dist/components/chat/CopilotChatAudioRecorder.mjs.map +0 -1
- package/dist/components/chat/CopilotChatInput.d.mts +0 -67
- package/dist/components/chat/CopilotChatInput.d.ts +0 -67
- package/dist/components/chat/CopilotChatInput.js +0 -1305
- package/dist/components/chat/CopilotChatInput.js.map +0 -1
- package/dist/components/chat/CopilotChatInput.mjs +0 -16
- package/dist/components/chat/CopilotChatInput.mjs.map +0 -1
- package/dist/components/chat/CopilotChatMessageView.d.mts +0 -29
- package/dist/components/chat/CopilotChatMessageView.d.ts +0 -29
- package/dist/components/chat/CopilotChatMessageView.js +0 -1164
- package/dist/components/chat/CopilotChatMessageView.js.map +0 -1
- package/dist/components/chat/CopilotChatMessageView.mjs +0 -31
- package/dist/components/chat/CopilotChatMessageView.mjs.map +0 -1
- package/dist/components/chat/CopilotChatSuggestionPill.d.mts +0 -11
- package/dist/components/chat/CopilotChatSuggestionPill.d.ts +0 -11
- package/dist/components/chat/CopilotChatSuggestionPill.js +0 -76
- package/dist/components/chat/CopilotChatSuggestionPill.js.map +0 -1
- package/dist/components/chat/CopilotChatSuggestionPill.mjs +0 -10
- package/dist/components/chat/CopilotChatSuggestionPill.mjs.map +0 -1
- package/dist/components/chat/CopilotChatSuggestionView.d.mts +0 -33
- package/dist/components/chat/CopilotChatSuggestionView.d.ts +0 -33
- package/dist/components/chat/CopilotChatSuggestionView.js +0 -179
- package/dist/components/chat/CopilotChatSuggestionView.js.map +0 -1
- package/dist/components/chat/CopilotChatSuggestionView.mjs +0 -12
- package/dist/components/chat/CopilotChatSuggestionView.mjs.map +0 -1
- package/dist/components/chat/CopilotChatToggleButton.d.mts +0 -14
- package/dist/components/chat/CopilotChatToggleButton.d.ts +0 -14
- package/dist/components/chat/CopilotChatToggleButton.js +0 -222
- package/dist/components/chat/CopilotChatToggleButton.js.map +0 -1
- package/dist/components/chat/CopilotChatToggleButton.mjs +0 -16
- package/dist/components/chat/CopilotChatToggleButton.mjs.map +0 -1
- package/dist/components/chat/CopilotChatToolCallsView.d.mts +0 -10
- package/dist/components/chat/CopilotChatToolCallsView.d.ts +0 -10
- package/dist/components/chat/CopilotChatToolCallsView.js +0 -264
- package/dist/components/chat/CopilotChatToolCallsView.js.map +0 -1
- package/dist/components/chat/CopilotChatToolCallsView.mjs +0 -24
- package/dist/components/chat/CopilotChatToolCallsView.mjs.map +0 -1
- package/dist/components/chat/CopilotChatUserMessage.d.mts +0 -52
- package/dist/components/chat/CopilotChatUserMessage.d.ts +0 -52
- package/dist/components/chat/CopilotChatUserMessage.js +0 -523
- package/dist/components/chat/CopilotChatUserMessage.js.map +0 -1
- package/dist/components/chat/CopilotChatUserMessage.mjs +0 -14
- package/dist/components/chat/CopilotChatUserMessage.mjs.map +0 -1
- package/dist/components/chat/CopilotChatView.d.mts +0 -54
- package/dist/components/chat/CopilotChatView.d.ts +0 -54
- package/dist/components/chat/CopilotChatView.js +0 -2640
- package/dist/components/chat/CopilotChatView.js.map +0 -1
- package/dist/components/chat/CopilotChatView.mjs +0 -38
- package/dist/components/chat/CopilotChatView.mjs.map +0 -1
- package/dist/components/chat/CopilotModalHeader.d.mts +0 -22
- package/dist/components/chat/CopilotModalHeader.d.ts +0 -22
- package/dist/components/chat/CopilotModalHeader.js +0 -186
- package/dist/components/chat/CopilotModalHeader.js.map +0 -1
- package/dist/components/chat/CopilotModalHeader.mjs +0 -12
- package/dist/components/chat/CopilotModalHeader.mjs.map +0 -1
- package/dist/components/chat/CopilotPopup.d.mts +0 -33
- package/dist/components/chat/CopilotPopup.d.ts +0 -33
- package/dist/components/chat/CopilotPopup.js +0 -3343
- package/dist/components/chat/CopilotPopup.js.map +0 -1
- package/dist/components/chat/CopilotPopup.mjs +0 -43
- package/dist/components/chat/CopilotPopup.mjs.map +0 -1
- package/dist/components/chat/CopilotPopupView.d.mts +0 -30
- package/dist/components/chat/CopilotPopupView.d.ts +0 -30
- package/dist/components/chat/CopilotPopupView.js +0 -3003
- package/dist/components/chat/CopilotPopupView.js.map +0 -1
- package/dist/components/chat/CopilotPopupView.mjs +0 -41
- package/dist/components/chat/CopilotPopupView.mjs.map +0 -1
- package/dist/components/chat/CopilotSidebar.d.mts +0 -31
- package/dist/components/chat/CopilotSidebar.d.ts +0 -31
- package/dist/components/chat/CopilotSidebar.js +0 -3266
- package/dist/components/chat/CopilotSidebar.js.map +0 -1
- package/dist/components/chat/CopilotSidebar.mjs +0 -43
- package/dist/components/chat/CopilotSidebar.mjs.map +0 -1
- package/dist/components/chat/CopilotSidebarView.d.mts +0 -28
- package/dist/components/chat/CopilotSidebarView.d.ts +0 -28
- package/dist/components/chat/CopilotSidebarView.js +0 -2941
- package/dist/components/chat/CopilotSidebarView.js.map +0 -1
- package/dist/components/chat/CopilotSidebarView.mjs +0 -41
- package/dist/components/chat/CopilotSidebarView.mjs.map +0 -1
- package/dist/components/chat/index.d.mts +0 -23
- package/dist/components/chat/index.d.ts +0 -23
- package/dist/components/chat/index.js +0 -3503
- package/dist/components/chat/index.js.map +0 -1
- package/dist/components/chat/index.mjs +0 -95
- package/dist/components/chat/index.mjs.map +0 -1
- package/dist/components/index.d.mts +0 -29
- package/dist/components/index.d.ts +0 -29
- package/dist/components/index.js +0 -3583
- package/dist/components/index.js.map +0 -1
- package/dist/components/index.mjs +0 -104
- package/dist/components/index.mjs.map +0 -1
- package/dist/components/ui/button.d.mts +0 -14
- package/dist/components/ui/button.d.ts +0 -14
- package/dist/components/ui/button.js +0 -150
- package/dist/components/ui/button.js.map +0 -1
- package/dist/components/ui/button.mjs +0 -10
- package/dist/components/ui/button.mjs.map +0 -1
- package/dist/components/ui/dropdown-menu.d.mts +0 -28
- package/dist/components/ui/dropdown-menu.d.ts +0 -28
- package/dist/components/ui/dropdown-menu.js +0 -291
- package/dist/components/ui/dropdown-menu.js.map +0 -1
- package/dist/components/ui/dropdown-menu.mjs +0 -37
- package/dist/components/ui/dropdown-menu.mjs.map +0 -1
- package/dist/components/ui/tooltip.d.mts +0 -10
- package/dist/components/ui/tooltip.d.ts +0 -10
- package/dist/components/ui/tooltip.js +0 -103
- package/dist/components/ui/tooltip.js.map +0 -1
- package/dist/components/ui/tooltip.mjs +0 -14
- package/dist/components/ui/tooltip.mjs.map +0 -1
- package/dist/hooks/index.d.mts +0 -19
- package/dist/hooks/index.d.ts +0 -19
- package/dist/hooks/index.js +0 -691
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/index.mjs +0 -45
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/hooks/use-agent-context.d.mts +0 -5
- package/dist/hooks/use-agent-context.d.ts +0 -5
- package/dist/hooks/use-agent-context.js +0 -116
- package/dist/hooks/use-agent-context.js.map +0 -1
- package/dist/hooks/use-agent-context.mjs +0 -10
- package/dist/hooks/use-agent-context.mjs.map +0 -1
- package/dist/hooks/use-agent.d.mts +0 -16
- package/dist/hooks/use-agent.d.ts +0 -16
- package/dist/hooks/use-agent.js +0 -171
- package/dist/hooks/use-agent.js.map +0 -1
- package/dist/hooks/use-agent.mjs +0 -12
- package/dist/hooks/use-agent.mjs.map +0 -1
- package/dist/hooks/use-configure-suggestions.d.mts +0 -13
- package/dist/hooks/use-configure-suggestions.d.ts +0 -13
- package/dist/hooks/use-configure-suggestions.js +0 -232
- package/dist/hooks/use-configure-suggestions.js.map +0 -1
- package/dist/hooks/use-configure-suggestions.mjs +0 -11
- package/dist/hooks/use-configure-suggestions.mjs.map +0 -1
- package/dist/hooks/use-frontend-tool.d.mts +0 -8
- package/dist/hooks/use-frontend-tool.d.ts +0 -8
- package/dist/hooks/use-frontend-tool.js +0 -137
- package/dist/hooks/use-frontend-tool.js.map +0 -1
- package/dist/hooks/use-frontend-tool.mjs +0 -10
- package/dist/hooks/use-frontend-tool.mjs.map +0 -1
- package/dist/hooks/use-human-in-the-loop.d.mts +0 -7
- package/dist/hooks/use-human-in-the-loop.d.ts +0 -7
- package/dist/hooks/use-human-in-the-loop.js +0 -206
- package/dist/hooks/use-human-in-the-loop.js.map +0 -1
- package/dist/hooks/use-human-in-the-loop.mjs +0 -11
- package/dist/hooks/use-human-in-the-loop.mjs.map +0 -1
- package/dist/hooks/use-keyboard-height.d.mts +0 -15
- package/dist/hooks/use-keyboard-height.d.ts +0 -15
- package/dist/hooks/use-keyboard-height.js +0 -68
- package/dist/hooks/use-keyboard-height.js.map +0 -1
- package/dist/hooks/use-keyboard-height.mjs +0 -7
- package/dist/hooks/use-keyboard-height.mjs.map +0 -1
- package/dist/hooks/use-render-activity-message.d.mts +0 -5
- package/dist/hooks/use-render-activity-message.d.ts +0 -5
- package/dist/hooks/use-render-activity-message.js +0 -158
- package/dist/hooks/use-render-activity-message.js.map +0 -1
- package/dist/hooks/use-render-activity-message.mjs +0 -12
- package/dist/hooks/use-render-activity-message.mjs.map +0 -1
- package/dist/hooks/use-render-custom-messages.d.mts +0 -11
- package/dist/hooks/use-render-custom-messages.d.ts +0 -11
- package/dist/hooks/use-render-custom-messages.js +0 -170
- package/dist/hooks/use-render-custom-messages.js.map +0 -1
- package/dist/hooks/use-render-custom-messages.mjs +0 -12
- package/dist/hooks/use-render-custom-messages.mjs.map +0 -1
- package/dist/hooks/use-render-tool-call.d.mts +0 -16
- package/dist/hooks/use-render-tool-call.d.ts +0 -16
- package/dist/hooks/use-render-tool-call.js +0 -208
- package/dist/hooks/use-render-tool-call.js.map +0 -1
- package/dist/hooks/use-render-tool-call.mjs +0 -11
- package/dist/hooks/use-render-tool-call.mjs.map +0 -1
- package/dist/hooks/use-suggestions.d.mts +0 -14
- package/dist/hooks/use-suggestions.d.ts +0 -14
- package/dist/hooks/use-suggestions.js +0 -176
- package/dist/hooks/use-suggestions.js.map +0 -1
- package/dist/hooks/use-suggestions.mjs +0 -11
- package/dist/hooks/use-suggestions.mjs.map +0 -1
- package/dist/lib/react-core.d.mts +0 -33
- package/dist/lib/react-core.d.ts +0 -33
- package/dist/lib/react-core.js +0 -73
- package/dist/lib/react-core.js.map +0 -1
- package/dist/lib/react-core.mjs +0 -7
- package/dist/lib/react-core.mjs.map +0 -1
- package/dist/lib/slots.d.mts +0 -16
- package/dist/lib/slots.d.ts +0 -16
- package/dist/lib/slots.js +0 -60
- package/dist/lib/slots.js.map +0 -1
- package/dist/lib/slots.mjs +0 -7
- package/dist/lib/slots.mjs.map +0 -1
- package/dist/lib/utils.d.mts +0 -5
- package/dist/lib/utils.d.ts +0 -5
- package/dist/lib/utils.js +0 -35
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/utils.mjs +0 -7
- package/dist/lib/utils.mjs.map +0 -1
- package/dist/providers/CopilotChatConfigurationProvider.d.mts +0 -43
- package/dist/providers/CopilotChatConfigurationProvider.d.ts +0 -43
- package/dist/providers/CopilotChatConfigurationProvider.js +0 -109
- package/dist/providers/CopilotChatConfigurationProvider.js.map +0 -1
- package/dist/providers/CopilotChatConfigurationProvider.mjs +0 -11
- package/dist/providers/CopilotChatConfigurationProvider.mjs.map +0 -1
- package/dist/providers/CopilotKitProvider.d.mts +0 -33
- package/dist/providers/CopilotKitProvider.d.ts +0 -33
- package/dist/providers/CopilotKitProvider.js +0 -314
- package/dist/providers/CopilotKitProvider.js.map +0 -1
- package/dist/providers/CopilotKitProvider.mjs +0 -12
- package/dist/providers/CopilotKitProvider.mjs.map +0 -1
- package/dist/providers/index.d.mts +0 -13
- package/dist/providers/index.d.ts +0 -13
- package/dist/providers/index.js +0 -396
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/index.mjs +0 -18
- package/dist/providers/index.mjs.map +0 -1
- package/dist/types/defineToolCallRenderer.d.mts +0 -41
- package/dist/types/defineToolCallRenderer.d.ts +0 -41
- package/dist/types/defineToolCallRenderer.js +0 -40
- package/dist/types/defineToolCallRenderer.js.map +0 -1
- package/dist/types/defineToolCallRenderer.mjs +0 -7
- package/dist/types/defineToolCallRenderer.mjs.map +0 -1
- package/dist/types/frontend-tool.d.mts +0 -9
- package/dist/types/frontend-tool.d.ts +0 -9
- package/dist/types/frontend-tool.js +0 -19
- package/dist/types/frontend-tool.js.map +0 -1
- package/dist/types/frontend-tool.mjs +0 -2
- package/dist/types/frontend-tool.mjs.map +0 -1
- package/dist/types/human-in-the-loop.d.mts +0 -29
- package/dist/types/human-in-the-loop.d.ts +0 -29
- package/dist/types/human-in-the-loop.js +0 -19
- package/dist/types/human-in-the-loop.js.map +0 -1
- package/dist/types/human-in-the-loop.mjs +0 -2
- package/dist/types/human-in-the-loop.mjs.map +0 -1
- package/dist/types/index.d.mts +0 -11
- package/dist/types/index.d.ts +0 -11
- package/dist/types/index.js +0 -42
- package/dist/types/index.js.map +0 -1
- package/dist/types/index.mjs +0 -13
- package/dist/types/index.mjs.map +0 -1
- package/dist/types/react-activity-message-renderer.d.mts +0 -29
- package/dist/types/react-activity-message-renderer.d.ts +0 -29
- package/dist/types/react-activity-message-renderer.js +0 -19
- package/dist/types/react-activity-message-renderer.js.map +0 -1
- package/dist/types/react-activity-message-renderer.mjs +0 -2
- package/dist/types/react-activity-message-renderer.mjs.map +0 -1
- package/dist/types/react-custom-message-renderer.d.mts +0 -18
- package/dist/types/react-custom-message-renderer.d.ts +0 -18
- package/dist/types/react-custom-message-renderer.js +0 -19
- package/dist/types/react-custom-message-renderer.js.map +0 -1
- package/dist/types/react-custom-message-renderer.mjs +0 -2
- package/dist/types/react-custom-message-renderer.mjs.map +0 -1
- package/dist/types/react-tool-call-renderer.d.mts +0 -30
- package/dist/types/react-tool-call-renderer.d.ts +0 -30
- package/dist/types/react-tool-call-renderer.js +0 -19
- package/dist/types/react-tool-call-renderer.js.map +0 -1
- package/dist/types/react-tool-call-renderer.mjs +0 -2
- package/dist/types/react-tool-call-renderer.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/chat/CopilotChatAssistantMessage.tsx","../../../src/providers/CopilotChatConfigurationProvider.tsx","../../../src/components/ui/button.tsx","../../../src/lib/utils.ts","../../../src/components/ui/tooltip.tsx","../../../src/lib/slots.tsx","../../../src/hooks/use-render-tool-call.tsx","../../../src/providers/CopilotKitProvider.tsx","../../../src/lib/react-core.ts","../../../src/components/CopilotKitInspector.tsx","../../../src/hooks/use-render-custom-messages.tsx","../../../src/hooks/use-render-activity-message.tsx","../../../src/hooks/use-frontend-tool.tsx","../../../src/hooks/use-human-in-the-loop.tsx","../../../src/hooks/use-agent.tsx","../../../src/hooks/use-agent-context.tsx","../../../src/hooks/use-suggestions.tsx","../../../src/hooks/use-configure-suggestions.tsx","../../../src/components/chat/CopilotChatToolCallsView.tsx"],"sourcesContent":["import { AssistantMessage, Message } from \"@ag-ui/core\";\nimport { useState } from \"react\";\nimport {\n Copy,\n Check,\n ThumbsUp,\n ThumbsDown,\n Volume2,\n RefreshCw,\n} from \"lucide-react\";\nimport {\n useCopilotChatConfiguration,\n CopilotChatDefaultLabels,\n} from \"@/providers/CopilotChatConfigurationProvider\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport \"katex/dist/katex.min.css\";\nimport { WithSlots, renderSlot } from \"@/lib/slots\";\nimport { Streamdown } from \"streamdown\";\nimport CopilotChatToolCallsView from \"./CopilotChatToolCallsView\";\n\nexport type CopilotChatAssistantMessageProps = WithSlots<\n {\n markdownRenderer: typeof CopilotChatAssistantMessage.MarkdownRenderer;\n toolbar: typeof CopilotChatAssistantMessage.Toolbar;\n copyButton: typeof CopilotChatAssistantMessage.CopyButton;\n thumbsUpButton: typeof CopilotChatAssistantMessage.ThumbsUpButton;\n thumbsDownButton: typeof CopilotChatAssistantMessage.ThumbsDownButton;\n readAloudButton: typeof CopilotChatAssistantMessage.ReadAloudButton;\n regenerateButton: typeof CopilotChatAssistantMessage.RegenerateButton;\n toolCallsView: typeof CopilotChatToolCallsView;\n },\n {\n onThumbsUp?: (message: AssistantMessage) => void;\n onThumbsDown?: (message: AssistantMessage) => void;\n onReadAloud?: (message: AssistantMessage) => void;\n onRegenerate?: (message: AssistantMessage) => void;\n message: AssistantMessage;\n messages?: Message[];\n isRunning?: boolean;\n additionalToolbarItems?: React.ReactNode;\n toolbarVisible?: boolean;\n } & React.HTMLAttributes<HTMLDivElement>\n>;\n\nexport function CopilotChatAssistantMessage({\n message,\n messages,\n isRunning,\n onThumbsUp,\n onThumbsDown,\n onReadAloud,\n onRegenerate,\n additionalToolbarItems,\n toolbarVisible = true,\n markdownRenderer,\n toolbar,\n copyButton,\n thumbsUpButton,\n thumbsDownButton,\n readAloudButton,\n regenerateButton,\n toolCallsView,\n children,\n className,\n ...props\n}: CopilotChatAssistantMessageProps) {\n const boundMarkdownRenderer = renderSlot(\n markdownRenderer,\n CopilotChatAssistantMessage.MarkdownRenderer,\n {\n content: message.content || \"\",\n \n }\n );\n\n const boundCopyButton = renderSlot(\n copyButton,\n CopilotChatAssistantMessage.CopyButton,\n {\n onClick: async () => {\n if (message.content) {\n try {\n await navigator.clipboard.writeText(message.content);\n } catch (err) {\n console.error(\"Failed to copy message:\", err);\n }\n }\n },\n }\n );\n\n const boundThumbsUpButton = renderSlot(\n thumbsUpButton,\n CopilotChatAssistantMessage.ThumbsUpButton,\n {\n onClick: onThumbsUp,\n }\n );\n\n const boundThumbsDownButton = renderSlot(\n thumbsDownButton,\n CopilotChatAssistantMessage.ThumbsDownButton,\n {\n onClick: onThumbsDown,\n }\n );\n\n const boundReadAloudButton = renderSlot(\n readAloudButton,\n CopilotChatAssistantMessage.ReadAloudButton,\n {\n onClick: onReadAloud,\n }\n );\n\n const boundRegenerateButton = renderSlot(\n regenerateButton,\n CopilotChatAssistantMessage.RegenerateButton,\n {\n onClick: onRegenerate,\n }\n );\n\n const boundToolbar = renderSlot(\n toolbar,\n CopilotChatAssistantMessage.Toolbar,\n {\n children: (\n <div className=\"flex items-center gap-1\">\n {boundCopyButton}\n {(onThumbsUp || thumbsUpButton) && boundThumbsUpButton}\n {(onThumbsDown || thumbsDownButton) && boundThumbsDownButton}\n {(onReadAloud || readAloudButton) && boundReadAloudButton}\n {(onRegenerate || regenerateButton) && boundRegenerateButton}\n {additionalToolbarItems}\n </div>\n ),\n }\n );\n\n const boundToolCallsView = renderSlot(\n toolCallsView,\n CopilotChatToolCallsView,\n {\n message,\n messages,\n }\n );\n\n // Don't show toolbar if message has no content (only tool calls)\n const hasContent = !!(message.content && message.content.trim().length > 0);\n const isLatestAssistantMessage =\n message.role === \"assistant\" && messages?.[messages.length - 1]?.id === message.id;\n const shouldShowToolbar = toolbarVisible && hasContent && !(isRunning && isLatestAssistantMessage);\n\n if (children) {\n return (\n <>\n {children({\n markdownRenderer: boundMarkdownRenderer,\n toolbar: boundToolbar,\n toolCallsView: boundToolCallsView,\n copyButton: boundCopyButton,\n thumbsUpButton: boundThumbsUpButton,\n thumbsDownButton: boundThumbsDownButton,\n readAloudButton: boundReadAloudButton,\n regenerateButton: boundRegenerateButton,\n message,\n messages,\n isRunning,\n onThumbsUp,\n onThumbsDown,\n onReadAloud,\n onRegenerate,\n additionalToolbarItems,\n toolbarVisible: shouldShowToolbar,\n })}\n </>\n );\n }\n\n return (\n <div\n className={twMerge(\n \"prose max-w-full break-words dark:prose-invert\",\n className\n )}\n {...props}\n data-message-id={message.id}\n >\n {boundMarkdownRenderer}\n {boundToolCallsView}\n {shouldShowToolbar && boundToolbar}\n </div>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace CopilotChatAssistantMessage {\n export const MarkdownRenderer: React.FC<\n Omit<React.ComponentProps<typeof Streamdown>, \"children\"> & {\n content: string;\n }\n > = ({ content, className, ...props }) => (\n <Streamdown className={className} {...props}>\n {content ?? \"\"}\n </Streamdown>\n );\n\n export const Toolbar: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n }) => (\n <div\n className={twMerge(\n \"w-full bg-transparent flex items-center -ml-[5px] -mt-[0px]\",\n className\n )}\n {...props}\n />\n );\n\n export const ToolbarButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n title: string;\n children: React.ReactNode;\n }\n > = ({ title, children, ...props }) => {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n type=\"button\"\n variant=\"assistantMessageToolbarButton\"\n aria-label={title}\n {...props}\n >\n {children}\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n <p>{title}</p>\n </TooltipContent>\n </Tooltip>\n );\n };\n\n export const CopyButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement>\n > = ({ className, title, onClick, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n const [copied, setCopied] = useState(false);\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n\n if (onClick) {\n onClick(event);\n }\n };\n\n return (\n <ToolbarButton\n title={title || labels.assistantMessageToolbarCopyMessageLabel}\n onClick={handleClick}\n className={className}\n {...props}\n >\n {copied ? (\n <Check className=\"size-[18px]\" />\n ) : (\n <Copy className=\"size-[18px]\" />\n )}\n </ToolbarButton>\n );\n };\n\n export const ThumbsUpButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement>\n > = ({ title, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n return (\n <ToolbarButton\n title={title || labels.assistantMessageToolbarThumbsUpLabel}\n {...props}\n >\n <ThumbsUp className=\"size-[18px]\" />\n </ToolbarButton>\n );\n };\n\n export const ThumbsDownButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement>\n > = ({ title, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n return (\n <ToolbarButton\n title={title || labels.assistantMessageToolbarThumbsDownLabel}\n {...props}\n >\n <ThumbsDown className=\"size-[18px]\" />\n </ToolbarButton>\n );\n };\n\n export const ReadAloudButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement>\n > = ({ title, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n return (\n <ToolbarButton\n title={title || labels.assistantMessageToolbarReadAloudLabel}\n {...props}\n >\n <Volume2 className=\"size-[20px]\" />\n </ToolbarButton>\n );\n };\n\n export const RegenerateButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement>\n > = ({ title, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n return (\n <ToolbarButton\n title={title || labels.assistantMessageToolbarRegenerateLabel}\n {...props}\n >\n <RefreshCw className=\"size-[18px]\" />\n </ToolbarButton>\n );\n };\n}\n\nCopilotChatAssistantMessage.MarkdownRenderer.displayName =\n \"CopilotChatAssistantMessage.MarkdownRenderer\";\nCopilotChatAssistantMessage.Toolbar.displayName =\n \"CopilotChatAssistantMessage.Toolbar\";\nCopilotChatAssistantMessage.CopyButton.displayName =\n \"CopilotChatAssistantMessage.CopyButton\";\nCopilotChatAssistantMessage.ThumbsUpButton.displayName =\n \"CopilotChatAssistantMessage.ThumbsUpButton\";\nCopilotChatAssistantMessage.ThumbsDownButton.displayName =\n \"CopilotChatAssistantMessage.ThumbsDownButton\";\nCopilotChatAssistantMessage.ReadAloudButton.displayName =\n \"CopilotChatAssistantMessage.ReadAloudButton\";\nCopilotChatAssistantMessage.RegenerateButton.displayName =\n \"CopilotChatAssistantMessage.RegenerateButton\";\n\nexport default CopilotChatAssistantMessage;\n","import React, { createContext, useContext, ReactNode, useMemo, useState } from \"react\";\nimport { DEFAULT_AGENT_ID, randomUUID } from \"@copilotkitnext/shared\";\n\n// Default labels\nexport const CopilotChatDefaultLabels = {\n chatInputPlaceholder: \"Type a message...\",\n chatInputToolbarStartTranscribeButtonLabel: \"Transcribe\",\n chatInputToolbarCancelTranscribeButtonLabel: \"Cancel\",\n chatInputToolbarFinishTranscribeButtonLabel: \"Finish\",\n chatInputToolbarAddButtonLabel: \"Add photos or files\",\n chatInputToolbarToolsButtonLabel: \"Tools\",\n assistantMessageToolbarCopyCodeLabel: \"Copy\",\n assistantMessageToolbarCopyCodeCopiedLabel: \"Copied\",\n assistantMessageToolbarCopyMessageLabel: \"Copy\",\n assistantMessageToolbarThumbsUpLabel: \"Good response\",\n assistantMessageToolbarThumbsDownLabel: \"Bad response\",\n assistantMessageToolbarReadAloudLabel: \"Read aloud\",\n assistantMessageToolbarRegenerateLabel: \"Regenerate\",\n userMessageToolbarCopyMessageLabel: \"Copy\",\n userMessageToolbarEditMessageLabel: \"Edit\",\n chatDisclaimerText: \"AI can make mistakes. Please verify important information.\",\n chatToggleOpenLabel: \"Open chat\",\n chatToggleCloseLabel: \"Close chat\",\n modalHeaderTitle: \"CopilotKit Chat\",\n};\n\nexport type CopilotChatLabels = typeof CopilotChatDefaultLabels;\n\n// Define the full configuration interface\nexport interface CopilotChatConfigurationValue {\n labels: CopilotChatLabels;\n agentId: string;\n threadId: string;\n isModalOpen: boolean;\n setModalOpen: (open: boolean) => void;\n isModalDefaultOpen: boolean;\n}\n\n// Create the configuration context\nconst CopilotChatConfiguration =\n createContext<CopilotChatConfigurationValue | null>(null);\n\n// Provider props interface\nexport interface CopilotChatConfigurationProviderProps {\n children: ReactNode;\n labels?: Partial<CopilotChatLabels>;\n agentId?: string;\n threadId?: string;\n isModalDefaultOpen?: boolean;\n}\n\n// Provider component\nexport const CopilotChatConfigurationProvider: React.FC<\n CopilotChatConfigurationProviderProps\n> = ({ children, labels, agentId, threadId, isModalDefaultOpen }) => {\n const parentConfig = useContext(CopilotChatConfiguration);\n\n const mergedLabels: CopilotChatLabels = useMemo(\n () => ({\n ...CopilotChatDefaultLabels,\n ...(parentConfig?.labels ?? {}),\n ...(labels ?? {}),\n }),\n [labels, parentConfig?.labels],\n );\n\n const resolvedAgentId = agentId ?? parentConfig?.agentId ?? DEFAULT_AGENT_ID;\n\n const resolvedThreadId = useMemo(() => {\n if (threadId) {\n return threadId;\n }\n if (parentConfig?.threadId) {\n return parentConfig.threadId;\n }\n return randomUUID();\n }, [threadId, parentConfig?.threadId]);\n\n const resolvedDefaultOpen = isModalDefaultOpen ?? parentConfig?.isModalDefaultOpen ?? true;\n\n const [internalModalOpen, setInternalModalOpen] = useState<boolean>(\n parentConfig?.isModalOpen ?? resolvedDefaultOpen,\n );\n\n const resolvedIsModalOpen = parentConfig?.isModalOpen ?? internalModalOpen;\n const resolvedSetModalOpen = parentConfig?.setModalOpen ?? setInternalModalOpen;\n\n const configurationValue: CopilotChatConfigurationValue = useMemo(\n () => ({\n labels: mergedLabels,\n agentId: resolvedAgentId,\n threadId: resolvedThreadId,\n isModalOpen: resolvedIsModalOpen,\n setModalOpen: resolvedSetModalOpen,\n isModalDefaultOpen: resolvedDefaultOpen,\n }),\n [\n mergedLabels,\n resolvedAgentId,\n resolvedThreadId,\n resolvedIsModalOpen,\n resolvedSetModalOpen,\n resolvedDefaultOpen,\n ],\n );\n\n return (\n <CopilotChatConfiguration.Provider value={configurationValue}>\n {children}\n </CopilotChatConfiguration.Provider>\n );\n};\n\n// Hook to use the full configuration\nexport const useCopilotChatConfiguration =\n (): CopilotChatConfigurationValue | null => {\n const configuration = useContext(CopilotChatConfiguration);\n return configuration;\n };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 cursor-pointer\",\n link: \"text-primary underline-offset-4 hover:underline\",\n assistantMessageToolbarButton: [\n \"cursor-pointer\",\n // Background and text\n \"p-0 text-[rgb(93,93,93)] hover:bg-[#E8E8E8]\",\n // Dark mode - lighter gray for better contrast\n \"dark:text-[rgb(243,243,243)] dark:hover:bg-[#303030]\",\n // Shape and sizing\n \"h-8 w-8\",\n // Interactions\n \"transition-colors\",\n // Hover states\n \"hover:text-[rgb(93,93,93)]\",\n \"dark:hover:text-[rgb(243,243,243)]\",\n ],\n chatInputToolbarPrimary: [\n \"cursor-pointer\",\n // Background and text\n \"bg-black text-white\",\n // Dark mode\n \"dark:bg-white dark:text-black dark:focus-visible:outline-white\",\n // Shape and sizing\n \"rounded-full\",\n // Interactions\n \"transition-colors\",\n // Focus states\n \"focus:outline-none\",\n // Hover states\n \"hover:opacity-70 disabled:hover:opacity-100\",\n // Disabled states\n \"disabled:cursor-not-allowed disabled:bg-[#00000014] disabled:text-[rgb(13,13,13)]\",\n \"dark:disabled:bg-[#454545] dark:disabled:text-white \",\n ],\n chatInputToolbarSecondary: [\n \"cursor-pointer\",\n // Background and text\n \"bg-transparent text-[#444444]\",\n // Dark mode\n \"dark:text-white dark:border-[#404040]\",\n // Shape and sizing\n \"rounded-full\",\n // Interactions\n \"transition-colors\",\n // Focus states\n \"focus:outline-none\",\n // Hover states\n \"hover:bg-[#f8f8f8] hover:text-[#333333]\",\n \"dark:hover:bg-[#404040] dark:hover:text-[#FFFFFF]\",\n // Disabled states\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"disabled:hover:bg-transparent disabled:hover:text-[#444444]\",\n \"dark:disabled:hover:bg-transparent dark:disabled:hover:text-[#CCCCCC]\",\n ],\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n chatInputToolbarIcon: [\n // Shape and sizing\n \"h-9 w-9 rounded-full\",\n ],\n chatInputToolbarIconLabel: [\n // Shape and sizing\n \"h-9 px-3 rounded-full\",\n // Layout\n \"gap-2\",\n // Typography\n \"font-normal\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import React from \"react\";\n\n// /** Utility: Create a component type with specific props omitted */\n// export type OmitSlotProps<\n// C extends React.ComponentType<any>,\n// K extends keyof React.ComponentProps<C>,\n// > = React.ComponentType<Omit<React.ComponentProps<C>, K>>;\n\n/** Existing union (unchanged) */\nexport type SlotValue<C extends React.ComponentType<any>> =\n | C\n | string\n | Partial<React.ComponentProps<C>>;\n\n/** Utility: concrete React elements for every slot */\ntype SlotElements<S> = { [K in keyof S]: React.ReactElement };\n\nexport type WithSlots<\n S extends Record<string, React.ComponentType<any>>,\n Rest = {},\n> = {\n /** Per‑slot overrides */\n [K in keyof S]?: SlotValue<S[K]>;\n} & {\n children?: (props: SlotElements<S> & Rest) => React.ReactNode;\n} & Omit<Rest, \"children\">;\n\nexport function renderSlot<\n C extends React.ComponentType<any>,\n P = React.ComponentProps<C>,\n>(\n slot: SlotValue<C> | undefined,\n DefaultComponent: C,\n props: P\n): React.ReactElement {\n if (typeof slot === \"string\") {\n return React.createElement(DefaultComponent, {\n ...(props as P),\n className: slot,\n });\n }\n if (typeof slot === \"function\") {\n const Comp = slot as C;\n return React.createElement(Comp, props as P);\n }\n\n if (slot && typeof slot === \"object\" && !React.isValidElement(slot)) {\n return React.createElement(DefaultComponent, {\n ...(props as P),\n ...slot,\n });\n }\n\n return React.createElement(DefaultComponent, props as P);\n}\n","import React, { useCallback, useEffect, useState, useSyncExternalStore } from \"react\";\nimport { ToolCall, ToolMessage } from \"@ag-ui/core\";\nimport { ToolCallStatus } from \"@copilotkitnext/core\";\nimport { useCopilotKit } from \"@/providers/CopilotKitProvider\";\nimport { useCopilotChatConfiguration } from \"@/providers/CopilotChatConfigurationProvider\";\nimport { DEFAULT_AGENT_ID } from \"@copilotkitnext/shared\";\nimport { partialJSONParse } from \"@copilotkitnext/shared\";\n\nexport interface UseRenderToolCallProps {\n toolCall: ToolCall;\n toolMessage?: ToolMessage;\n}\n\n/**\n * Hook that returns a function to render tool calls based on the render functions\n * defined in CopilotKitProvider.\n *\n * @returns A function that takes a tool call and optional tool message and returns the rendered component\n */\nexport function useRenderToolCall() {\n const { copilotkit } = useCopilotKit();\n const config = useCopilotChatConfiguration();\n const agentId = config?.agentId ?? DEFAULT_AGENT_ID;\n const [executingToolCallIds, setExecutingToolCallIds] = useState<\n ReadonlySet<string>\n >(() => new Set());\n\n // Subscribe to render tool calls changes using useSyncExternalStore\n // This ensures we always have the latest value, even if subscriptions run in any order\n const renderToolCalls = useSyncExternalStore(\n (callback) => {\n return copilotkit.subscribe({\n onRenderToolCallsChanged: callback,\n });\n },\n () => copilotkit.renderToolCalls,\n () => copilotkit.renderToolCalls\n );\n\n useEffect(() => {\n const unsubscribe = copilotkit.subscribe({\n onToolExecutionStart: ({ toolCallId }) => {\n setExecutingToolCallIds((prev) => {\n if (prev.has(toolCallId)) return prev;\n const next = new Set(prev);\n next.add(toolCallId);\n return next;\n });\n },\n onToolExecutionEnd: ({ toolCallId }) => {\n setExecutingToolCallIds((prev) => {\n if (!prev.has(toolCallId)) return prev;\n const next = new Set(prev);\n next.delete(toolCallId);\n return next;\n });\n },\n });\n return () => unsubscribe();\n }, [copilotkit]);\n\n const renderToolCall = useCallback(\n ({\n toolCall,\n toolMessage,\n }: UseRenderToolCallProps): React.ReactElement | null => {\n // Find the render config for this tool call by name\n // For rendering, we show all tool calls regardless of agentId\n // The agentId scoping only affects handler execution (in core)\n // Priority order:\n // 1. Exact match by name (prefer agent-specific if multiple exist)\n // 2. Wildcard (*) renderer\n const exactMatches = renderToolCalls.filter(\n (rc) => rc.name === toolCall.function.name\n );\n\n // If multiple renderers with same name exist, prefer the one matching our agentId\n const renderConfig =\n exactMatches.find((rc) => rc.agentId === agentId) ||\n exactMatches.find((rc) => !rc.agentId) ||\n exactMatches[0] ||\n renderToolCalls.find((rc) => rc.name === \"*\");\n\n if (!renderConfig) {\n return null;\n }\n\n const RenderComponent = renderConfig.render;\n\n // Parse the arguments if they're a string\n const args = partialJSONParse(toolCall.function.arguments);\n\n // Create props based on status with proper typing\n const toolName = toolCall.function.name;\n\n if (toolMessage) {\n // Complete status with result\n return (\n <RenderComponent\n key={toolCall.id}\n name={toolName}\n args={args}\n status={ToolCallStatus.Complete}\n result={toolMessage.content}\n />\n );\n } else if (executingToolCallIds.has(toolCall.id)) {\n // Tool is currently executing\n return (\n <RenderComponent\n key={toolCall.id}\n name={toolName}\n // args should be complete when executing; but pass whatever we have\n args={args}\n status={ToolCallStatus.Executing}\n result={undefined}\n />\n );\n } else {\n // In progress status - tool call exists but hasn't completed yet\n // This remains true even after agent stops running, until we get a result\n return (\n <RenderComponent\n key={toolCall.id}\n name={toolName}\n args={args}\n status={ToolCallStatus.InProgress}\n result={undefined}\n />\n );\n }\n },\n [renderToolCalls, executingToolCallIds, agentId]\n );\n\n return renderToolCall;\n}\n","\"use client\";\n\nimport React, {\n createContext,\n useContext,\n ReactNode,\n useMemo,\n useEffect,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { ReactActivityMessageRenderer, ReactToolCallRenderer } from \"../types\";\nimport { ReactCustomMessageRenderer } from \"../types/react-custom-message-renderer\";\nimport { ReactFrontendTool } from \"../types/frontend-tool\";\nimport { ReactHumanInTheLoop } from \"../types/human-in-the-loop\";\nimport { z } from \"zod\";\nimport { FrontendTool } from \"@copilotkitnext/core\";\nimport { AbstractAgent } from \"@ag-ui/client\";\nimport { CopilotKitCoreReact } from \"../lib/react-core\";\nimport { CopilotKitInspector } from \"../components/CopilotKitInspector\";\n\n// Define the context value interface - idiomatic React naming\nexport interface CopilotKitContextValue {\n copilotkit: CopilotKitCoreReact;\n}\n\n// Create the CopilotKit context\nconst CopilotKitContext = createContext<CopilotKitContextValue>({\n copilotkit: null!,\n});\n\n// Provider props interface\nexport interface CopilotKitProviderProps {\n children: ReactNode;\n runtimeUrl?: string;\n headers?: Record<string, string>;\n properties?: Record<string, unknown>;\n useSingleEndpoint?: boolean;\n agents__unsafe_dev_only?: Record<string, AbstractAgent>;\n renderToolCalls?: ReactToolCallRenderer<any>[];\n renderActivityMessages?: ReactActivityMessageRenderer<any>[];\n renderCustomMessages?: ReactCustomMessageRenderer[];\n frontendTools?: ReactFrontendTool[];\n humanInTheLoop?: ReactHumanInTheLoop[];\n showDevConsole?: boolean | \"auto\";\n}\n\n// Small helper to normalize array props to a stable reference and warn\nfunction useStableArrayProp<T>(\n prop: T[] | undefined,\n warningMessage?: string,\n isMeaningfulChange?: (initial: T[], next: T[]) => boolean,\n): T[] {\n const empty = useMemo<T[]>(() => [], []);\n const value = prop ?? empty;\n const initial = useRef(value);\n\n useEffect(() => {\n if (\n warningMessage &&\n value !== initial.current &&\n (isMeaningfulChange ? isMeaningfulChange(initial.current, value) : true)\n ) {\n console.error(warningMessage);\n }\n }, [value, warningMessage]);\n\n return value;\n}\n\n// Provider component\nexport const CopilotKitProvider: React.FC<CopilotKitProviderProps> = ({\n children,\n runtimeUrl,\n headers = {},\n properties = {},\n agents__unsafe_dev_only: agents = {},\n renderToolCalls,\n renderActivityMessages,\n renderCustomMessages,\n frontendTools,\n humanInTheLoop,\n showDevConsole = false,\n useSingleEndpoint = false,\n}) => {\n const [shouldRenderInspector, setShouldRenderInspector] = useState(false);\n\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n if (showDevConsole === true) {\n // Explicitly show the inspector\n setShouldRenderInspector(true);\n } else if (showDevConsole === \"auto\") {\n // Show on localhost or 127.0.0.1 only\n const localhostHosts = new Set([\"localhost\", \"127.0.0.1\"]);\n if (localhostHosts.has(window.location.hostname)) {\n setShouldRenderInspector(true);\n } else {\n setShouldRenderInspector(false);\n }\n } else {\n // showDevConsole is false or undefined (default false)\n setShouldRenderInspector(false);\n }\n }, [showDevConsole]);\n\n // Normalize array props to stable references with clear dev warnings\n const renderToolCallsList = useStableArrayProp<ReactToolCallRenderer<any>>(\n renderToolCalls,\n \"renderToolCalls must be a stable array. If you want to dynamically add or remove tools, use `useFrontendTool` instead.\",\n (initial, next) => {\n // Only warn if the shape (names+agentId) changed. Allow identity changes\n // to support updated closures from parents (e.g., Storybook state).\n const key = (rc?: ReactToolCallRenderer<unknown>) => `${rc?.agentId ?? \"\"}:${rc?.name ?? \"\"}`;\n const setFrom = (arr: ReactToolCallRenderer<unknown>[]) => new Set(arr.map(key));\n const a = setFrom(initial);\n const b = setFrom(next);\n if (a.size !== b.size) return true;\n for (const k of a) if (!b.has(k)) return true;\n return false;\n },\n );\n\n const renderCustomMessagesList = useStableArrayProp<ReactCustomMessageRenderer>(\n renderCustomMessages,\n \"renderCustomMessages must be a stable array.\",\n );\n\n const renderActivityMessagesList = useStableArrayProp<ReactActivityMessageRenderer<any>>(\n renderActivityMessages,\n \"renderActivityMessages must be a stable array.\",\n );\n\n const frontendToolsList = useStableArrayProp<ReactFrontendTool>(\n frontendTools,\n \"frontendTools must be a stable array. If you want to dynamically add or remove tools, use `useFrontendTool` instead.\",\n );\n const humanInTheLoopList = useStableArrayProp<ReactHumanInTheLoop>(\n humanInTheLoop,\n \"humanInTheLoop must be a stable array. If you want to dynamically add or remove human-in-the-loop tools, use `useHumanInTheLoop` instead.\",\n );\n\n // Note: warnings for array identity changes are handled by useStableArrayProp\n\n // Process humanInTheLoop tools to create handlers and add render components\n const processedHumanInTheLoopTools = useMemo(() => {\n const processedTools: FrontendTool[] = [];\n const processedRenderToolCalls: ReactToolCallRenderer<unknown>[] = [];\n\n humanInTheLoopList.forEach((tool) => {\n // Create a promise-based handler for each human-in-the-loop tool\n const frontendTool: FrontendTool = {\n name: tool.name,\n description: tool.description,\n parameters: tool.parameters,\n followUp: tool.followUp,\n ...(tool.agentId && { agentId: tool.agentId }),\n handler: async () => {\n // This handler will be replaced by the hook when it runs\n // For provider-level tools, we create a basic handler that waits for user interaction\n return new Promise((resolve) => {\n // The actual implementation will be handled by the render component\n // This is a placeholder that the hook will override\n console.warn(`Human-in-the-loop tool '${tool.name}' called but no interactive handler is set up.`);\n resolve(undefined);\n });\n },\n };\n processedTools.push(frontendTool);\n\n // Add the render component to renderToolCalls\n if (tool.render) {\n processedRenderToolCalls.push({\n name: tool.name,\n args: tool.parameters!,\n render: tool.render,\n ...(tool.agentId && { agentId: tool.agentId }),\n } as ReactToolCallRenderer<unknown>);\n }\n });\n\n return { tools: processedTools, renderToolCalls: processedRenderToolCalls };\n }, [humanInTheLoopList]);\n\n // Combine all tools for CopilotKitCore\n const allTools = useMemo(() => {\n const tools: FrontendTool[] = [];\n\n // Add frontend tools\n tools.push(...frontendToolsList);\n\n // Add processed human-in-the-loop tools\n tools.push(...processedHumanInTheLoopTools.tools);\n\n return tools;\n }, [frontendToolsList, processedHumanInTheLoopTools]);\n\n // Combine all render tool calls\n const allRenderToolCalls = useMemo(() => {\n const combined: ReactToolCallRenderer<unknown>[] = [...renderToolCallsList];\n\n // Add render components from frontend tools\n frontendToolsList.forEach((tool) => {\n if (tool.render) {\n // For wildcard tools without parameters, default to z.any()\n const args = tool.parameters || (tool.name === \"*\" ? z.any() : undefined);\n if (args) {\n combined.push({\n name: tool.name,\n args: args,\n render: tool.render,\n } as ReactToolCallRenderer<unknown>);\n }\n }\n });\n\n // Add render components from human-in-the-loop tools\n combined.push(...processedHumanInTheLoopTools.renderToolCalls);\n\n return combined;\n }, [renderToolCallsList, frontendToolsList, processedHumanInTheLoopTools]);\n\n const copilotkit = useMemo(() => {\n const copilotkit = new CopilotKitCoreReact({\n runtimeUrl,\n runtimeTransport: useSingleEndpoint ? \"single\" : \"rest\",\n headers,\n properties,\n agents__unsafe_dev_only: agents,\n tools: allTools,\n renderToolCalls: allRenderToolCalls,\n renderActivityMessages: renderActivityMessagesList,\n renderCustomMessages: renderCustomMessagesList,\n });\n\n return copilotkit;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allTools, allRenderToolCalls, renderActivityMessagesList, renderCustomMessagesList, useSingleEndpoint]);\n\n // Subscribe to render tool calls changes to force re-renders\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n\n useEffect(() => {\n const unsubscribe = copilotkit.subscribe({\n onRenderToolCallsChanged: () => {\n forceUpdate();\n },\n });\n\n return () => {\n unsubscribe();\n };\n }, [copilotkit]);\n\n useEffect(() => {\n copilotkit.setRuntimeUrl(runtimeUrl);\n copilotkit.setRuntimeTransport(useSingleEndpoint ? \"single\" : \"rest\");\n copilotkit.setHeaders(headers);\n copilotkit.setProperties(properties);\n copilotkit.setAgents__unsafe_dev_only(agents);\n }, [runtimeUrl, headers, properties, agents, useSingleEndpoint]);\n\n return (\n <CopilotKitContext.Provider\n value={{\n copilotkit,\n }}\n >\n {children}\n {shouldRenderInspector ? <CopilotKitInspector core={copilotkit} /> : null}\n </CopilotKitContext.Provider>\n );\n};\n\n// Hook to use the CopilotKit instance - returns the full context value\nexport const useCopilotKit = (): CopilotKitContextValue => {\n const context = useContext(CopilotKitContext);\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n\n if (!context) {\n throw new Error(\"useCopilotKit must be used within CopilotKitProvider\");\n }\n useEffect(() => {\n const unsubscribe = context.copilotkit.subscribe({\n onRuntimeConnectionStatusChanged: () => {\n forceUpdate();\n },\n });\n return () => {\n unsubscribe();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return context;\n};\n","import { ReactActivityMessageRenderer, ReactToolCallRenderer } from \"@/types\";\nimport { ReactCustomMessageRenderer } from \"@/types/react-custom-message-renderer\";\nimport { CopilotKitCore, CopilotKitCoreConfig, CopilotKitCoreSubscriber } from \"@copilotkitnext/core\";\n\nexport interface CopilotKitCoreReactConfig extends CopilotKitCoreConfig {\n // Add any additional configuration properties specific to the React implementation\n renderToolCalls?: ReactToolCallRenderer<any>[];\n renderActivityMessages?: ReactActivityMessageRenderer<any>[];\n\n // Add custom message renderers\n renderCustomMessages?: ReactCustomMessageRenderer[];\n}\n\nexport interface CopilotKitCoreReactSubscriber extends CopilotKitCoreSubscriber {\n onRenderToolCallsChanged?: (event: {\n copilotkit: CopilotKitCore;\n renderToolCalls: ReactToolCallRenderer<any>[];\n }) => void | Promise<void>;\n}\n\nexport class CopilotKitCoreReact extends CopilotKitCore {\n private _renderToolCalls: ReactToolCallRenderer<any>[] = [];\n private _renderCustomMessages: ReactCustomMessageRenderer[] = [];\n private _renderActivityMessages: ReactActivityMessageRenderer<any>[] = [];\n\n constructor(config: CopilotKitCoreReactConfig) {\n super(config);\n this._renderToolCalls = config.renderToolCalls ?? [];\n this._renderCustomMessages = config.renderCustomMessages ?? [];\n this._renderActivityMessages = config.renderActivityMessages ?? [];\n }\n\n get renderCustomMessages(): Readonly<ReactCustomMessageRenderer[]> {\n return this._renderCustomMessages;\n }\n\n get renderActivityMessages(): Readonly<ReactActivityMessageRenderer<any>>[] {\n return this._renderActivityMessages;\n }\n\n get renderToolCalls(): Readonly<ReactToolCallRenderer<any>>[] {\n return this._renderToolCalls;\n }\n\n setRenderToolCalls(renderToolCalls: ReactToolCallRenderer<any>[]): void {\n this._renderToolCalls = renderToolCalls;\n\n // Notify React-specific subscribers\n void this.notifySubscribers(\n (subscriber) => {\n const reactSubscriber = subscriber as CopilotKitCoreReactSubscriber;\n if (reactSubscriber.onRenderToolCallsChanged) {\n reactSubscriber.onRenderToolCallsChanged({\n copilotkit: this,\n renderToolCalls: this.renderToolCalls,\n });\n }\n },\n \"Subscriber onRenderToolCallsChanged error:\"\n );\n }\n\n // Override to accept React-specific subscriber type\n subscribe(subscriber: CopilotKitCoreReactSubscriber): () => void {\n return super.subscribe(subscriber);\n }\n\n unsubscribe(subscriber: CopilotKitCoreReactSubscriber): void {\n super.unsubscribe(subscriber);\n }\n}\n","import * as React from \"react\";\nimport { createComponent } from \"@lit-labs/react\";\nimport {\n WEB_INSPECTOR_TAG,\n WebInspectorElement,\n defineWebInspector,\n} from \"@copilotkitnext/web-inspector\";\nimport type { CopilotKitCore } from \"@copilotkitnext/core\";\n\ndefineWebInspector();\n\nconst CopilotKitInspectorBase = createComponent({\n tagName: WEB_INSPECTOR_TAG,\n elementClass: WebInspectorElement,\n react: React,\n});\n\nexport type CopilotKitInspectorBaseProps = React.ComponentProps<typeof CopilotKitInspectorBase>;\n\nexport interface CopilotKitInspectorProps extends Omit<CopilotKitInspectorBaseProps, \"core\"> {\n core?: CopilotKitCore | null;\n}\n\nexport const CopilotKitInspector = React.forwardRef<\n WebInspectorElement,\n CopilotKitInspectorProps\n>(\n ({ core, ...rest }, ref) => {\n const innerRef = React.useRef<WebInspectorElement>(null);\n\n React.useImperativeHandle(ref, () => innerRef.current as WebInspectorElement, []);\n\n React.useEffect(() => {\n if (innerRef.current) {\n innerRef.current.core = core ?? null;\n }\n }, [core]);\n\n return (\n <CopilotKitInspectorBase\n {...(rest as CopilotKitInspectorBaseProps)}\n ref={innerRef}\n />\n ); // eslint-disable-line react/jsx-props-no-spreading\n },\n);\n\nCopilotKitInspector.displayName = \"CopilotKitInspector\";\n","import { useCopilotChatConfiguration, useCopilotKit } from \"@/providers\";\nimport { ReactCustomMessageRendererPosition } from \"@/types/react-custom-message-renderer\";\nimport { Message } from \"@ag-ui/core\";\n\ninterface UseRenderCustomMessagesParams {\n message: Message;\n position: ReactCustomMessageRendererPosition;\n}\n\nexport function useRenderCustomMessages() {\n const { copilotkit } = useCopilotKit();\n const config = useCopilotChatConfiguration();\n\n if (!config) {\n return null;\n }\n\n const { agentId, threadId } = config;\n\n const customMessageRenderers = copilotkit.renderCustomMessages\n .filter((renderer) => renderer.agentId === undefined || renderer.agentId === agentId)\n .sort((a, b) => {\n const aHasAgent = a.agentId !== undefined;\n const bHasAgent = b.agentId !== undefined;\n if (aHasAgent === bHasAgent) return 0;\n return aHasAgent ? -1 : 1;\n });\n\n return function (params: UseRenderCustomMessagesParams) {\n if (!customMessageRenderers.length) {\n return null;\n }\n const { message, position } = params;\n const runId = copilotkit.getRunIdForMessage(agentId, threadId, message.id)!;\n const agent = copilotkit.getAgent(agentId);\n if (!agent) {\n throw new Error(\"Agent not found\");\n }\n\n const messagesIdsInRun = agent.messages\n .filter((msg) => copilotkit.getRunIdForMessage(agentId, threadId, msg.id) === runId)\n .map((msg) => msg.id);\n\n const messageIndex = agent.messages.findIndex((msg) => msg.id === message.id) ?? 0;\n const messageIndexInRun = Math.min(messagesIdsInRun.indexOf(message.id), 0);\n const numberOfMessagesInRun = messagesIdsInRun.length;\n const stateSnapshot = copilotkit.getStateByRun(agentId, threadId, runId);\n\n let result = null;\n for (const renderer of customMessageRenderers) {\n if (!renderer.render) {\n continue;\n }\n const Component = renderer.render;\n result = (\n <Component\n key={`${runId}-${message.id}-${position}`}\n message={message}\n position={position}\n runId={runId}\n messageIndex={messageIndex}\n messageIndexInRun={messageIndexInRun}\n numberOfMessagesInRun={numberOfMessagesInRun}\n agentId={agentId}\n stateSnapshot={stateSnapshot}\n />\n );\n if (result) {\n break;\n }\n }\n return result;\n };\n}\n","import { ActivityMessage } from \"@ag-ui/core\";\nimport { DEFAULT_AGENT_ID } from \"@copilotkitnext/shared\";\nimport { useCopilotKit, useCopilotChatConfiguration } from \"@/providers\";\nimport { useCallback } from \"react\";\n\nexport function useRenderActivityMessage() {\n const { copilotkit } = useCopilotKit();\n const config = useCopilotChatConfiguration();\n const agentId = config?.agentId ?? DEFAULT_AGENT_ID;\n\n const renderers = copilotkit.renderActivityMessages;\n\n return useCallback(\n (message: ActivityMessage): React.ReactElement | null => {\n if (!renderers.length) {\n return null;\n }\n\n const matches = renderers.filter(\n (renderer) => renderer.activityType === message.activityType\n );\n\n const renderer =\n matches.find((candidate) => candidate.agentId === agentId) ??\n matches.find((candidate) => candidate.agentId === undefined) ??\n renderers.find((candidate) => candidate.activityType === \"*\");\n\n if (!renderer) {\n return null;\n }\n\n const parseResult = renderer.content.safeParse(message.content);\n\n if (!parseResult.success) {\n console.warn(\n `Failed to parse content for activity message '${message.activityType}':`,\n parseResult.error\n );\n return null;\n }\n\n const Component = renderer.render;\n\n const agent = copilotkit.getAgent(agentId);\n\n return (\n <Component\n key={message.id}\n activityType={message.activityType}\n content={parseResult.data}\n message={message}\n agent={agent}\n />\n );\n },\n [agentId, copilotkit, renderers]\n );\n}\n","import { useEffect } from \"react\";\nimport { useCopilotKit } from \"../providers/CopilotKitProvider\";\nimport { ReactFrontendTool } from \"../types/frontend-tool\";\nimport { ReactToolCallRenderer } from \"../types/react-tool-call-renderer\";\n\nexport function useFrontendTool<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(tool: ReactFrontendTool<T>) {\n const { copilotkit } = useCopilotKit();\n\n useEffect(() => {\n const name = tool.name;\n\n // Always register/override the tool for this name on mount\n if (copilotkit.getTool({ toolName: name, agentId: tool.agentId })) {\n console.warn(\n `Tool '${name}' already exists for agent '${tool.agentId || 'global'}'. Overriding with latest registration.`\n );\n copilotkit.removeTool(name, tool.agentId);\n }\n copilotkit.addTool(tool);\n\n // Register/override renderer by name and agentId through core\n if (tool.render) {\n // Get current render tool calls and merge with new entry\n const keyOf = (rc: ReactToolCallRenderer<any>) => `${rc.agentId ?? \"\"}:${rc.name}`;\n const currentRenderToolCalls = copilotkit.renderToolCalls as ReactToolCallRenderer<any>[];\n\n // Build map from existing entries\n const mergedMap = new Map<string, ReactToolCallRenderer<any>>();\n for (const rc of currentRenderToolCalls) {\n mergedMap.set(keyOf(rc), rc);\n }\n\n // Add/overwrite with new entry\n const newEntry = {\n name,\n args: tool.parameters,\n agentId: tool.agentId,\n render: tool.render,\n } as ReactToolCallRenderer<any>;\n mergedMap.set(keyOf(newEntry), newEntry);\n\n // Set the merged list back\n copilotkit.setRenderToolCalls(Array.from(mergedMap.values()));\n }\n\n return () => {\n copilotkit.removeTool(name, tool.agentId);\n // we are intentionally not removing the render here so that the tools can still render in the chat history\n };\n // Depend only on stable keys to avoid re-register loops due to object identity\n }, [tool.name, copilotkit]);\n}\n","import { ReactToolCallRenderer } from \"@/types/react-tool-call-renderer\";\nimport { useFrontendTool } from \"./use-frontend-tool\";\nimport { ReactFrontendTool } from \"@/types/frontend-tool\";\nimport { ReactHumanInTheLoop } from \"@/types/human-in-the-loop\";\nimport { useCallback, useRef, useEffect } from \"react\";\nimport React from \"react\";\nimport { useCopilotKit } from \"@/providers/CopilotKitProvider\";\n\nexport function useHumanInTheLoop<T extends Record<string, unknown> = Record<string, unknown>>(\n tool: ReactHumanInTheLoop<T>,\n) {\n const { copilotkit } = useCopilotKit();\n const resolvePromiseRef = useRef<((result: unknown) => void) | null>(null);\n\n const respond = useCallback(async (result: unknown) => {\n if (resolvePromiseRef.current) {\n resolvePromiseRef.current(result);\n resolvePromiseRef.current = null;\n }\n }, []);\n\n const handler = useCallback(async () => {\n return new Promise((resolve) => {\n resolvePromiseRef.current = resolve;\n });\n }, []);\n\n const RenderComponent: ReactToolCallRenderer<T>[\"render\"] = useCallback(\n (props) => {\n const ToolComponent = tool.render;\n\n // Enhance props based on current status\n if (props.status === \"inProgress\") {\n const enhancedProps = {\n ...props,\n name: tool.name,\n description: tool.description || \"\",\n respond: undefined,\n };\n return React.createElement(ToolComponent, enhancedProps);\n } else if (props.status === \"executing\") {\n const enhancedProps = {\n ...props,\n name: tool.name,\n description: tool.description || \"\",\n respond,\n };\n return React.createElement(ToolComponent, enhancedProps);\n } else if (props.status === \"complete\") {\n const enhancedProps = {\n ...props,\n name: tool.name,\n description: tool.description || \"\",\n respond: undefined,\n };\n return React.createElement(ToolComponent, enhancedProps);\n }\n\n // Fallback - just render with original props\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.createElement(ToolComponent, props as any);\n },\n [tool.render, tool.name, tool.description, respond],\n );\n\n const frontendTool: ReactFrontendTool<T> = {\n ...tool,\n handler,\n render: RenderComponent,\n };\n\n useFrontendTool(frontendTool);\n\n // Human-in-the-loop tools should remove their renderer on unmount\n // since they can't respond to user interactions anymore\n useEffect(() => {\n return () => {\n const keyOf = (rc: ReactToolCallRenderer<any>) => `${rc.agentId ?? \"\"}:${rc.name}`;\n const currentRenderToolCalls = copilotkit.renderToolCalls as ReactToolCallRenderer<any>[];\n const filtered = currentRenderToolCalls.filter(\n (rc) => keyOf(rc) !== keyOf({ name: tool.name, agentId: tool.agentId } as any),\n );\n copilotkit.setRenderToolCalls(filtered);\n };\n }, [copilotkit, tool.name, tool.agentId]);\n}\n","import { useCopilotKit } from \"@/providers/CopilotKitProvider\";\nimport { useMemo, useEffect, useReducer } from \"react\";\nimport { DEFAULT_AGENT_ID } from \"@copilotkitnext/shared\";\nimport { AbstractAgent } from \"@ag-ui/client\";\n\nexport enum UseAgentUpdate {\n OnMessagesChanged = \"OnMessagesChanged\",\n OnStateChanged = \"OnStateChanged\",\n OnRunStatusChanged = \"OnRunStatusChanged\",\n}\n\nconst ALL_UPDATES: UseAgentUpdate[] = [\n UseAgentUpdate.OnMessagesChanged,\n UseAgentUpdate.OnStateChanged,\n UseAgentUpdate.OnRunStatusChanged,\n];\n\nexport interface UseAgentProps {\n agentId?: string;\n updates?: UseAgentUpdate[];\n}\n\nexport function useAgent({ agentId, updates }: UseAgentProps = {}) {\n agentId ??= DEFAULT_AGENT_ID;\n\n const { copilotkit } = useCopilotKit();\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n\n const updateFlags = useMemo(\n () => updates ?? ALL_UPDATES,\n [JSON.stringify(updates)]\n );\n\n const agent: AbstractAgent | undefined = useMemo(() => {\n return copilotkit.getAgent(agentId);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n agentId,\n copilotkit.agents,\n copilotkit.runtimeConnectionStatus,\n copilotkit,\n ]);\n\n useEffect(() => {\n if (!agent) {\n return;\n }\n\n if (updateFlags.length === 0) {\n return;\n }\n\n const handlers: Parameters<AbstractAgent[\"subscribe\"]>[0] = {};\n\n if (updateFlags.includes(UseAgentUpdate.OnMessagesChanged)) {\n handlers.onMessagesChanged = () => {\n forceUpdate();\n };\n }\n\n if (updateFlags.includes(UseAgentUpdate.OnStateChanged)) {\n handlers.onStateChanged = () => {\n forceUpdate();\n };\n }\n\n if (updateFlags.includes(UseAgentUpdate.OnRunStatusChanged)) {\n handlers.onRunInitialized = () => {\n forceUpdate();\n };\n handlers.onRunFinalized = () => {\n forceUpdate();\n };\n handlers.onRunFailed = () => {\n forceUpdate();\n };\n }\n\n const subscription = agent.subscribe(handlers);\n return () => subscription.unsubscribe();\n }, [agent, forceUpdate, JSON.stringify(updateFlags)]);\n\n return {\n agent,\n };\n}\n","import { useCopilotKit } from \"../providers/CopilotKitProvider\";\nimport { Context } from \"@ag-ui/client\";\nimport { useEffect } from \"react\";\n\nexport function useAgentContext(context: Context) {\n const { description, value } = context;\n const { copilotkit } = useCopilotKit();\n\n useEffect(() => {\n if (!copilotkit) return;\n\n const id = copilotkit.addContext(context);\n return () => {\n copilotkit.removeContext(id);\n };\n }, [description, value, copilotkit]);\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Suggestion } from \"@copilotkitnext/core\";\nimport { useCopilotKit } from \"@/providers/CopilotKitProvider\";\nimport { useCopilotChatConfiguration } from \"@/providers/CopilotChatConfigurationProvider\";\nimport { DEFAULT_AGENT_ID } from \"@copilotkitnext/shared\";\n\nexport interface UseSuggestionsOptions {\n agentId?: string;\n}\n\nexport interface UseSuggestionsResult {\n suggestions: Suggestion[];\n reloadSuggestions: () => void;\n clearSuggestions: () => void;\n isLoading: boolean;\n}\n\nexport function useSuggestions({ agentId }: UseSuggestionsOptions = {}): UseSuggestionsResult {\n const { copilotkit } = useCopilotKit();\n const config = useCopilotChatConfiguration();\n const resolvedAgentId = useMemo(() => agentId ?? config?.agentId ?? DEFAULT_AGENT_ID, [agentId, config?.agentId]);\n\n const [suggestions, setSuggestions] = useState<Suggestion[]>(() => {\n const result = copilotkit.getSuggestions(resolvedAgentId);\n return result.suggestions;\n });\n const [isLoading, setIsLoading] = useState(() => {\n const result = copilotkit.getSuggestions(resolvedAgentId);\n return result.isLoading;\n });\n\n useEffect(() => {\n const result = copilotkit.getSuggestions(resolvedAgentId);\n setSuggestions(result.suggestions);\n setIsLoading(result.isLoading);\n }, [copilotkit, resolvedAgentId]);\n\n useEffect(() => {\n const unsubscribe = copilotkit.subscribe({\n onSuggestionsChanged: ({ agentId: changedAgentId, suggestions }) => {\n if (changedAgentId !== resolvedAgentId) {\n return;\n }\n setSuggestions(suggestions);\n },\n onSuggestionsStartedLoading: ({ agentId: changedAgentId }) => {\n if (changedAgentId !== resolvedAgentId) {\n return;\n }\n setIsLoading(true);\n },\n onSuggestionsFinishedLoading: ({ agentId: changedAgentId }) => {\n if (changedAgentId !== resolvedAgentId) {\n return;\n }\n setIsLoading(false);\n },\n onSuggestionsConfigChanged: () => {\n const result = copilotkit.getSuggestions(resolvedAgentId);\n setSuggestions(result.suggestions);\n setIsLoading(result.isLoading);\n },\n });\n\n return () => {\n unsubscribe();\n };\n }, [copilotkit, resolvedAgentId]);\n\n const reloadSuggestions = useCallback(() => {\n copilotkit.reloadSuggestions(resolvedAgentId);\n // Loading state is handled by onSuggestionsStartedLoading event\n }, [copilotkit, resolvedAgentId]);\n\n const clearSuggestions = useCallback(() => {\n copilotkit.clearSuggestions(resolvedAgentId);\n // State updates are handled by onSuggestionsChanged event\n }, [copilotkit, resolvedAgentId]);\n\n return {\n suggestions,\n reloadSuggestions,\n clearSuggestions,\n isLoading,\n };\n}\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { useCopilotKit } from \"@/providers/CopilotKitProvider\";\nimport { useCopilotChatConfiguration } from \"@/providers/CopilotChatConfigurationProvider\";\nimport { DEFAULT_AGENT_ID } from \"@copilotkitnext/shared\";\nimport {\n DynamicSuggestionsConfig,\n StaticSuggestionsConfig,\n SuggestionsConfig,\n Suggestion,\n} from \"@copilotkitnext/core\";\n\ntype StaticSuggestionInput = Omit<Suggestion, \"isLoading\"> & Partial<Pick<Suggestion, \"isLoading\">>;\n\ntype StaticSuggestionsConfigInput = Omit<StaticSuggestionsConfig, \"suggestions\"> & {\n suggestions: StaticSuggestionInput[];\n};\n\ntype SuggestionsConfigInput = DynamicSuggestionsConfig | StaticSuggestionsConfigInput;\n\nconst EMPTY_DEPS: ReadonlyArray<unknown> = [];\n\nexport interface UseConfigureSuggestionsOptions {\n deps?: ReadonlyArray<unknown>;\n}\n\nexport function useConfigureSuggestions(\n config: SuggestionsConfigInput | null | undefined,\n options?: UseConfigureSuggestionsOptions,\n): void {\n const { copilotkit } = useCopilotKit();\n const chatConfig = useCopilotChatConfiguration();\n const extraDeps = options?.deps ?? EMPTY_DEPS;\n\n const resolvedConsumerAgentId = useMemo(() => chatConfig?.agentId ?? DEFAULT_AGENT_ID, [chatConfig?.agentId]);\n\n const rawConsumerAgentId = useMemo(() => (config ? (config as SuggestionsConfigInput).consumerAgentId : undefined), [config]);\n\n const normalizationCacheRef = useRef<{ serialized: string | null; config: SuggestionsConfig | null }>({\n serialized: null,\n config: null,\n });\n\n const { normalizedConfig, serializedConfig } = useMemo(() => {\n if (!config) {\n normalizationCacheRef.current = { serialized: null, config: null };\n return { normalizedConfig: null, serializedConfig: null };\n }\n\n if (config.available === \"disabled\") {\n normalizationCacheRef.current = { serialized: null, config: null };\n return { normalizedConfig: null, serializedConfig: null };\n }\n\n let built: SuggestionsConfig;\n if (isDynamicConfig(config)) {\n built = {\n ...config,\n } satisfies DynamicSuggestionsConfig;\n } else {\n const normalizedSuggestions = normalizeStaticSuggestions(config.suggestions);\n const baseConfig: StaticSuggestionsConfig = {\n ...config,\n suggestions: normalizedSuggestions,\n };\n built = baseConfig;\n }\n\n const serialized = JSON.stringify(built);\n const cache = normalizationCacheRef.current;\n if (cache.serialized === serialized && cache.config) {\n return { normalizedConfig: cache.config, serializedConfig: serialized };\n }\n\n normalizationCacheRef.current = { serialized, config: built };\n return { normalizedConfig: built, serializedConfig: serialized };\n }, [config, resolvedConsumerAgentId, ...extraDeps]);\n const latestConfigRef = useRef<SuggestionsConfig | null>(null);\n latestConfigRef.current = normalizedConfig;\n const previousSerializedConfigRef = useRef<string | null>(null);\n\n const targetAgentId = useMemo(() => {\n if (!normalizedConfig) {\n return resolvedConsumerAgentId;\n }\n const consumer = (normalizedConfig as StaticSuggestionsConfig | DynamicSuggestionsConfig).consumerAgentId;\n if (!consumer || consumer === \"*\") {\n return resolvedConsumerAgentId;\n }\n return consumer;\n }, [normalizedConfig, resolvedConsumerAgentId]);\n\n const isGlobalConfig = rawConsumerAgentId === undefined || rawConsumerAgentId === \"*\";\n\n const requestReload = useCallback(() => {\n if (!normalizedConfig) {\n return;\n }\n\n if (isGlobalConfig) {\n const agents = Object.values(copilotkit.agents ?? {});\n for (const entry of agents) {\n const agentId = entry.agentId;\n if (!agentId) {\n continue;\n }\n if (!entry.isRunning) {\n copilotkit.reloadSuggestions(agentId);\n }\n }\n return;\n }\n\n if (!targetAgentId) {\n return;\n }\n\n copilotkit.reloadSuggestions(targetAgentId);\n }, [copilotkit, isGlobalConfig, normalizedConfig, targetAgentId]);\n\n useEffect(() => {\n if (!serializedConfig || !latestConfigRef.current) {\n return;\n }\n\n const id = copilotkit.addSuggestionsConfig(latestConfigRef.current);\n\n requestReload();\n\n return () => {\n copilotkit.removeSuggestionsConfig(id);\n };\n }, [copilotkit, serializedConfig, requestReload]);\n\n useEffect(() => {\n if (!normalizedConfig) {\n previousSerializedConfigRef.current = null;\n return;\n }\n if (serializedConfig && previousSerializedConfigRef.current === serializedConfig) {\n return;\n }\n if (serializedConfig) {\n previousSerializedConfigRef.current = serializedConfig;\n }\n requestReload();\n }, [normalizedConfig, requestReload, serializedConfig]);\n\n useEffect(() => {\n if (!normalizedConfig || extraDeps.length === 0) {\n return;\n }\n requestReload();\n }, [extraDeps.length, normalizedConfig, requestReload, ...extraDeps]);\n\n}\n\nfunction isDynamicConfig(config: SuggestionsConfigInput): config is DynamicSuggestionsConfig {\n return \"instructions\" in config;\n}\n\nfunction normalizeStaticSuggestions(suggestions: StaticSuggestionInput[]): Suggestion[] {\n return suggestions.map((suggestion) => ({\n ...suggestion,\n isLoading: suggestion.isLoading ?? false,\n }));\n}\n","import { useRenderToolCall } from \"@/hooks\";\nimport { AssistantMessage, Message, ToolMessage } from \"@ag-ui/core\";\nimport React from \"react\";\n\nexport type CopilotChatToolCallsViewProps = {\n message: AssistantMessage;\n messages?: Message[];\n};\n\nexport function CopilotChatToolCallsView({\n message,\n messages = [],\n}: CopilotChatToolCallsViewProps) {\n const renderToolCall = useRenderToolCall();\n\n if (!message.toolCalls || message.toolCalls.length === 0) {\n return null;\n }\n\n return (\n <>\n {message.toolCalls.map((toolCall) => {\n const toolMessage = messages.find(\n (m) => m.role === \"tool\" && m.toolCallId === toolCall.id\n ) as ToolMessage | undefined;\n\n return (\n <React.Fragment key={toolCall.id}>\n {renderToolCall({\n toolCall,\n toolMessage,\n })}\n </React.Fragment>\n );\n })}\n </>\n );\n}\n\nexport default CopilotChatToolCallsView;\n"],"mappings":"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","names":["import_react","import_tailwind_merge","import_jsx_runtime","import_jsx_runtime","import_react","React","import_react","import_core","import_react","React","import_react","import_jsx_runtime","import_jsx_runtime","import_shared","import_jsx_runtime","import_jsx_runtime","import_shared","import_react","import_jsx_runtime","import_react","import_react","import_react","import_shared","import_react","import_react","import_shared","import_react","import_shared","import_react","import_jsx_runtime","React","import_jsx_runtime","CopilotChatAssistantMessage"]}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CopilotChatAssistantMessage,
|
|
3
|
-
CopilotChatAssistantMessage_default
|
|
4
|
-
} from "../../chunk-SPDE34WC.mjs";
|
|
5
|
-
import "../../chunk-AEFM73CL.mjs";
|
|
6
|
-
import "../../chunk-TAUOEJH2.mjs";
|
|
7
|
-
import "../../chunk-VVAXSF3M.mjs";
|
|
8
|
-
import "../../chunk-FIBK3DYE.mjs";
|
|
9
|
-
import "../../chunk-XO4IRKSC.mjs";
|
|
10
|
-
import "../../chunk-ETWJDCGE.mjs";
|
|
11
|
-
import "../../chunk-CGLGXQAU.mjs";
|
|
12
|
-
import "../../chunk-IICUCI5S.mjs";
|
|
13
|
-
import "../../chunk-RK5P2LG6.mjs";
|
|
14
|
-
import "../../chunk-5SC3CO5Q.mjs";
|
|
15
|
-
import "../../chunk-YZUPVMHC.mjs";
|
|
16
|
-
import "../../chunk-AXFRCGH6.mjs";
|
|
17
|
-
import "../../chunk-XU5CEPYQ.mjs";
|
|
18
|
-
import "../../chunk-UOX5D73C.mjs";
|
|
19
|
-
import "../../chunk-IA4CLXDM.mjs";
|
|
20
|
-
import "../../chunk-NB2GZAKG.mjs";
|
|
21
|
-
import "../../chunk-4XJK5IVQ.mjs";
|
|
22
|
-
import "../../chunk-RF2CGPHQ.mjs";
|
|
23
|
-
import "../../chunk-NNAYEAP2.mjs";
|
|
24
|
-
import "../../chunk-YPH4BHOY.mjs";
|
|
25
|
-
export {
|
|
26
|
-
CopilotChatAssistantMessage,
|
|
27
|
-
CopilotChatAssistantMessage_default as default
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=CopilotChatAssistantMessage.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
/** Finite-state machine for every recorder implementation */
|
|
4
|
-
type AudioRecorderState = "idle" | "recording" | "processing";
|
|
5
|
-
/** Error subclass so callers can `instanceof`-guard recorder failures */
|
|
6
|
-
declare class AudioRecorderError extends Error {
|
|
7
|
-
constructor(message: string);
|
|
8
|
-
}
|
|
9
|
-
declare const CopilotChatAudioRecorder: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<any>>;
|
|
10
|
-
|
|
11
|
-
export { AudioRecorderError, type AudioRecorderState, CopilotChatAudioRecorder };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
/** Finite-state machine for every recorder implementation */
|
|
4
|
-
type AudioRecorderState = "idle" | "recording" | "processing";
|
|
5
|
-
/** Error subclass so callers can `instanceof`-guard recorder failures */
|
|
6
|
-
declare class AudioRecorderError extends Error {
|
|
7
|
-
constructor(message: string);
|
|
8
|
-
}
|
|
9
|
-
declare const CopilotChatAudioRecorder: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<any>>;
|
|
10
|
-
|
|
11
|
-
export { AudioRecorderError, type AudioRecorderState, CopilotChatAudioRecorder };
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/components/chat/CopilotChatAudioRecorder.tsx
|
|
21
|
-
var CopilotChatAudioRecorder_exports = {};
|
|
22
|
-
__export(CopilotChatAudioRecorder_exports, {
|
|
23
|
-
AudioRecorderError: () => AudioRecorderError,
|
|
24
|
-
CopilotChatAudioRecorder: () => CopilotChatAudioRecorder
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(CopilotChatAudioRecorder_exports);
|
|
27
|
-
var import_react = require("react");
|
|
28
|
-
var import_tailwind_merge = require("tailwind-merge");
|
|
29
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
30
|
-
var AudioRecorderError = class extends Error {
|
|
31
|
-
constructor(message) {
|
|
32
|
-
super(message);
|
|
33
|
-
this.name = "AudioRecorderError";
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var CopilotChatAudioRecorder = (0, import_react.forwardRef)((props, ref) => {
|
|
37
|
-
const { className, ...divProps } = props;
|
|
38
|
-
const canvasRef = (0, import_react.useRef)(null);
|
|
39
|
-
const getLoudness = (n) => {
|
|
40
|
-
const elapsed = Date.now() / 1e3;
|
|
41
|
-
const samples = [];
|
|
42
|
-
for (let i = 0; i < n; i++) {
|
|
43
|
-
const position = i / n * 10 + elapsed * 0.5;
|
|
44
|
-
const wave1 = Math.sin(position * 2) * 0.3;
|
|
45
|
-
const wave2 = Math.sin(position * 5 + elapsed) * 0.2;
|
|
46
|
-
const wave3 = Math.sin(position * 0.5 + elapsed * 0.3) * 0.4;
|
|
47
|
-
const noise = (Math.random() - 0.5) * 0.1;
|
|
48
|
-
const envelope = Math.sin(elapsed * 0.7) * 0.5 + 0.5;
|
|
49
|
-
let amplitude = (wave1 + wave2 + wave3 + noise) * envelope;
|
|
50
|
-
amplitude = Math.max(0, Math.min(1, amplitude * 0.5 + 0.3));
|
|
51
|
-
samples.push(amplitude);
|
|
52
|
-
}
|
|
53
|
-
return samples;
|
|
54
|
-
};
|
|
55
|
-
(0, import_react.useEffect)(() => {
|
|
56
|
-
const canvas = canvasRef.current;
|
|
57
|
-
if (!canvas) return;
|
|
58
|
-
const ctx = canvas.getContext("2d");
|
|
59
|
-
if (!ctx) return;
|
|
60
|
-
let animationId;
|
|
61
|
-
const draw = () => {
|
|
62
|
-
const rect = canvas.getBoundingClientRect();
|
|
63
|
-
const dpr = window.devicePixelRatio || 1;
|
|
64
|
-
if (canvas.width !== rect.width * dpr || canvas.height !== rect.height * dpr) {
|
|
65
|
-
canvas.width = rect.width * dpr;
|
|
66
|
-
canvas.height = rect.height * dpr;
|
|
67
|
-
ctx.scale(dpr, dpr);
|
|
68
|
-
ctx.imageSmoothingEnabled = false;
|
|
69
|
-
}
|
|
70
|
-
const barWidth = 2;
|
|
71
|
-
const minHeight = 2;
|
|
72
|
-
const maxHeight = 20;
|
|
73
|
-
const gap = 2;
|
|
74
|
-
const numSamples = Math.ceil(rect.width / (barWidth + gap));
|
|
75
|
-
const loudnessData = getLoudness(numSamples);
|
|
76
|
-
ctx.clearRect(0, 0, rect.width, rect.height);
|
|
77
|
-
const computedStyle = getComputedStyle(canvas);
|
|
78
|
-
const currentForeground = computedStyle.color;
|
|
79
|
-
ctx.fillStyle = currentForeground;
|
|
80
|
-
const centerY = rect.height / 2;
|
|
81
|
-
for (let i = 0; i < loudnessData.length; i++) {
|
|
82
|
-
const sample = loudnessData[i] ?? 0;
|
|
83
|
-
const barHeight = Math.round(
|
|
84
|
-
sample * (maxHeight - minHeight) + minHeight
|
|
85
|
-
);
|
|
86
|
-
const x = Math.round(i * (barWidth + gap));
|
|
87
|
-
const y = Math.round(centerY - barHeight / 2);
|
|
88
|
-
ctx.fillRect(x, y, barWidth, barHeight);
|
|
89
|
-
}
|
|
90
|
-
animationId = requestAnimationFrame(draw);
|
|
91
|
-
};
|
|
92
|
-
draw();
|
|
93
|
-
return () => {
|
|
94
|
-
if (animationId) {
|
|
95
|
-
cancelAnimationFrame(animationId);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}, []);
|
|
99
|
-
(0, import_react.useImperativeHandle)(
|
|
100
|
-
ref,
|
|
101
|
-
() => ({
|
|
102
|
-
get state() {
|
|
103
|
-
return "idle";
|
|
104
|
-
},
|
|
105
|
-
start: async () => {
|
|
106
|
-
},
|
|
107
|
-
stop: () => new Promise((resolve) => {
|
|
108
|
-
const emptyBlob = new Blob([], { type: "audio/webm" });
|
|
109
|
-
resolve(emptyBlob);
|
|
110
|
-
}),
|
|
111
|
-
dispose: () => {
|
|
112
|
-
}
|
|
113
|
-
}),
|
|
114
|
-
[]
|
|
115
|
-
);
|
|
116
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: (0, import_tailwind_merge.twMerge)("h-[44px] w-full px-5", className), ...divProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
117
|
-
"canvas",
|
|
118
|
-
{
|
|
119
|
-
ref: canvasRef,
|
|
120
|
-
className: "w-full h-full",
|
|
121
|
-
style: { imageRendering: "pixelated" }
|
|
122
|
-
}
|
|
123
|
-
) });
|
|
124
|
-
});
|
|
125
|
-
CopilotChatAudioRecorder.displayName = "WebAudioRecorder";
|
|
126
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
127
|
-
0 && (module.exports = {
|
|
128
|
-
AudioRecorderError,
|
|
129
|
-
CopilotChatAudioRecorder
|
|
130
|
-
});
|
|
131
|
-
//# sourceMappingURL=CopilotChatAudioRecorder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/chat/CopilotChatAudioRecorder.tsx"],"sourcesContent":["import { useRef, useEffect, useImperativeHandle, forwardRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\n/** Finite-state machine for every recorder implementation */\nexport type AudioRecorderState = \"idle\" | \"recording\" | \"processing\";\n\n/** Error subclass so callers can `instanceof`-guard recorder failures */\nexport class AudioRecorderError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"AudioRecorderError\";\n }\n}\n\nexport const CopilotChatAudioRecorder = forwardRef<\n any,\n React.HTMLAttributes<HTMLDivElement>\n>((props, ref) => {\n const { className, ...divProps } = props;\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n // Generate fake waveform that moves with time\n const getLoudness = (n: number): number[] => {\n const elapsed = Date.now() / 1000; // Use current timestamp directly\n const samples: number[] = [];\n\n for (let i = 0; i < n; i++) {\n // Create a position that moves from left to right over time\n const position = (i / n) * 10 + elapsed * 0.5; // Scroll speed (slower)\n\n // Generate waveform using multiple sine waves for realism\n const wave1 = Math.sin(position * 2) * 0.3;\n const wave2 = Math.sin(position * 5 + elapsed) * 0.2;\n const wave3 = Math.sin(position * 0.5 + elapsed * 0.3) * 0.4;\n\n // Add some randomness for natural variation\n const noise = (Math.random() - 0.5) * 0.1;\n\n // Combine waves and add envelope for realistic amplitude variation\n const envelope = Math.sin(elapsed * 0.7) * 0.5 + 0.5; // Slow amplitude modulation\n let amplitude = (wave1 + wave2 + wave3 + noise) * envelope;\n\n // Clamp to 0-1 range\n amplitude = Math.max(0, Math.min(1, amplitude * 0.5 + 0.3));\n\n samples.push(amplitude);\n }\n\n return samples;\n };\n\n // No setup needed - stub implementation\n\n // Canvas rendering with 60fps animation\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n\n let animationId: number;\n\n const draw = () => {\n const rect = canvas.getBoundingClientRect();\n const dpr = window.devicePixelRatio || 1;\n\n // Update canvas dimensions if container resized\n if (\n canvas.width !== rect.width * dpr ||\n canvas.height !== rect.height * dpr\n ) {\n canvas.width = rect.width * dpr;\n canvas.height = rect.height * dpr;\n ctx.scale(dpr, dpr);\n ctx.imageSmoothingEnabled = false;\n }\n\n // Configuration\n const barWidth = 2;\n const minHeight = 2;\n const maxHeight = 20;\n const gap = 2;\n const numSamples = Math.ceil(rect.width / (barWidth + gap));\n\n // Get loudness data\n const loudnessData = getLoudness(numSamples);\n\n // Clear canvas\n ctx.clearRect(0, 0, rect.width, rect.height);\n\n // Get current foreground color\n const computedStyle = getComputedStyle(canvas);\n const currentForeground = computedStyle.color;\n\n // Draw bars\n ctx.fillStyle = currentForeground;\n const centerY = rect.height / 2;\n\n for (let i = 0; i < loudnessData.length; i++) {\n const sample = loudnessData[i] ?? 0;\n const barHeight = Math.round(\n sample * (maxHeight - minHeight) + minHeight\n );\n const x = Math.round(i * (barWidth + gap));\n const y = Math.round(centerY - barHeight / 2);\n\n ctx.fillRect(x, y, barWidth, barHeight);\n }\n\n animationId = requestAnimationFrame(draw);\n };\n\n draw();\n\n return () => {\n if (animationId) {\n cancelAnimationFrame(animationId);\n }\n };\n }, []);\n\n // Expose AudioRecorder API\n useImperativeHandle(\n ref,\n () => ({\n get state() {\n return \"idle\" as AudioRecorderState;\n },\n start: async () => {\n // Stub implementation - no actual recording\n },\n stop: () =>\n new Promise<Blob>((resolve) => {\n // Stub implementation - return empty blob\n const emptyBlob = new Blob([], { type: \"audio/webm\" });\n resolve(emptyBlob);\n }),\n dispose: () => {\n // No cleanup needed\n },\n }),\n []\n );\n\n return (\n <div className={twMerge(\"h-[44px] w-full px-5\", className)} {...divProps}>\n <canvas\n ref={canvasRef}\n className=\"w-full h-full\"\n style={{ imageRendering: \"pixelated\" }}\n />\n </div>\n );\n});\n\nCopilotChatAudioRecorder.displayName = \"WebAudioRecorder\";\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { CopilotChatLabels } from '../../providers/CopilotChatConfigurationProvider.mjs';
|
|
4
|
-
import { CopilotChatAudioRecorder } from './CopilotChatAudioRecorder.mjs';
|
|
5
|
-
import { WithSlots } from '../../lib/slots.mjs';
|
|
6
|
-
|
|
7
|
-
type CopilotChatInputMode = "input" | "transcribe" | "processing";
|
|
8
|
-
type ToolsMenuItem = {
|
|
9
|
-
label: string;
|
|
10
|
-
} & ({
|
|
11
|
-
action: () => void;
|
|
12
|
-
items?: never;
|
|
13
|
-
} | {
|
|
14
|
-
action?: never;
|
|
15
|
-
items: (ToolsMenuItem | "-")[];
|
|
16
|
-
});
|
|
17
|
-
type CopilotChatInputSlots = {
|
|
18
|
-
textArea: typeof CopilotChatInput.TextArea;
|
|
19
|
-
sendButton: typeof CopilotChatInput.SendButton;
|
|
20
|
-
startTranscribeButton: typeof CopilotChatInput.StartTranscribeButton;
|
|
21
|
-
cancelTranscribeButton: typeof CopilotChatInput.CancelTranscribeButton;
|
|
22
|
-
finishTranscribeButton: typeof CopilotChatInput.FinishTranscribeButton;
|
|
23
|
-
addMenuButton: typeof CopilotChatInput.AddMenuButton;
|
|
24
|
-
audioRecorder: typeof CopilotChatAudioRecorder;
|
|
25
|
-
};
|
|
26
|
-
type CopilotChatInputRestProps = {
|
|
27
|
-
mode?: CopilotChatInputMode;
|
|
28
|
-
toolsMenu?: (ToolsMenuItem | "-")[];
|
|
29
|
-
autoFocus?: boolean;
|
|
30
|
-
onSubmitMessage?: (value: string) => void;
|
|
31
|
-
onStop?: () => void;
|
|
32
|
-
isRunning?: boolean;
|
|
33
|
-
onStartTranscribe?: () => void;
|
|
34
|
-
onCancelTranscribe?: () => void;
|
|
35
|
-
onFinishTranscribe?: () => void;
|
|
36
|
-
onAddFile?: () => void;
|
|
37
|
-
value?: string;
|
|
38
|
-
onChange?: (value: string) => void;
|
|
39
|
-
} & Omit<React__default.HTMLAttributes<HTMLDivElement>, "onChange">;
|
|
40
|
-
type CopilotChatInputBaseProps = WithSlots<CopilotChatInputSlots, CopilotChatInputRestProps>;
|
|
41
|
-
type CopilotChatInputChildrenArgs = CopilotChatInputBaseProps extends {
|
|
42
|
-
children?: infer C;
|
|
43
|
-
} ? C extends (props: infer P) => React__default.ReactNode ? P : never : never;
|
|
44
|
-
type CopilotChatInputProps = Omit<CopilotChatInputBaseProps, "children"> & {
|
|
45
|
-
children?: (props: CopilotChatInputChildrenArgs) => React__default.ReactNode;
|
|
46
|
-
};
|
|
47
|
-
declare function CopilotChatInput({ mode, onSubmitMessage, onStop, isRunning, onStartTranscribe, onCancelTranscribe, onFinishTranscribe, onAddFile, onChange, value, toolsMenu, autoFocus, textArea, sendButton, startTranscribeButton, cancelTranscribeButton, finishTranscribeButton, addMenuButton, audioRecorder, children, className, ...props }: CopilotChatInputProps): react_jsx_runtime.JSX.Element;
|
|
48
|
-
declare namespace CopilotChatInput {
|
|
49
|
-
const SendButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
50
|
-
const ToolbarButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
51
|
-
icon: React__default.ReactNode;
|
|
52
|
-
labelKey: keyof CopilotChatLabels;
|
|
53
|
-
defaultClassName?: string;
|
|
54
|
-
}>;
|
|
55
|
-
const StartTranscribeButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
56
|
-
const CancelTranscribeButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
57
|
-
const FinishTranscribeButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
58
|
-
const AddMenuButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
59
|
-
toolsMenu?: (ToolsMenuItem | "-")[];
|
|
60
|
-
onAddFile?: () => void;
|
|
61
|
-
}>;
|
|
62
|
-
type TextAreaProps = React__default.TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
63
|
-
const TextArea: React__default.ForwardRefExoticComponent<TextAreaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
|
|
64
|
-
const AudioRecorder: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<any>>;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export { CopilotChatInput, type CopilotChatInputMode, type CopilotChatInputProps, type ToolsMenuItem, CopilotChatInput as default };
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { CopilotChatLabels } from '../../providers/CopilotChatConfigurationProvider.js';
|
|
4
|
-
import { CopilotChatAudioRecorder } from './CopilotChatAudioRecorder.js';
|
|
5
|
-
import { WithSlots } from '../../lib/slots.js';
|
|
6
|
-
|
|
7
|
-
type CopilotChatInputMode = "input" | "transcribe" | "processing";
|
|
8
|
-
type ToolsMenuItem = {
|
|
9
|
-
label: string;
|
|
10
|
-
} & ({
|
|
11
|
-
action: () => void;
|
|
12
|
-
items?: never;
|
|
13
|
-
} | {
|
|
14
|
-
action?: never;
|
|
15
|
-
items: (ToolsMenuItem | "-")[];
|
|
16
|
-
});
|
|
17
|
-
type CopilotChatInputSlots = {
|
|
18
|
-
textArea: typeof CopilotChatInput.TextArea;
|
|
19
|
-
sendButton: typeof CopilotChatInput.SendButton;
|
|
20
|
-
startTranscribeButton: typeof CopilotChatInput.StartTranscribeButton;
|
|
21
|
-
cancelTranscribeButton: typeof CopilotChatInput.CancelTranscribeButton;
|
|
22
|
-
finishTranscribeButton: typeof CopilotChatInput.FinishTranscribeButton;
|
|
23
|
-
addMenuButton: typeof CopilotChatInput.AddMenuButton;
|
|
24
|
-
audioRecorder: typeof CopilotChatAudioRecorder;
|
|
25
|
-
};
|
|
26
|
-
type CopilotChatInputRestProps = {
|
|
27
|
-
mode?: CopilotChatInputMode;
|
|
28
|
-
toolsMenu?: (ToolsMenuItem | "-")[];
|
|
29
|
-
autoFocus?: boolean;
|
|
30
|
-
onSubmitMessage?: (value: string) => void;
|
|
31
|
-
onStop?: () => void;
|
|
32
|
-
isRunning?: boolean;
|
|
33
|
-
onStartTranscribe?: () => void;
|
|
34
|
-
onCancelTranscribe?: () => void;
|
|
35
|
-
onFinishTranscribe?: () => void;
|
|
36
|
-
onAddFile?: () => void;
|
|
37
|
-
value?: string;
|
|
38
|
-
onChange?: (value: string) => void;
|
|
39
|
-
} & Omit<React__default.HTMLAttributes<HTMLDivElement>, "onChange">;
|
|
40
|
-
type CopilotChatInputBaseProps = WithSlots<CopilotChatInputSlots, CopilotChatInputRestProps>;
|
|
41
|
-
type CopilotChatInputChildrenArgs = CopilotChatInputBaseProps extends {
|
|
42
|
-
children?: infer C;
|
|
43
|
-
} ? C extends (props: infer P) => React__default.ReactNode ? P : never : never;
|
|
44
|
-
type CopilotChatInputProps = Omit<CopilotChatInputBaseProps, "children"> & {
|
|
45
|
-
children?: (props: CopilotChatInputChildrenArgs) => React__default.ReactNode;
|
|
46
|
-
};
|
|
47
|
-
declare function CopilotChatInput({ mode, onSubmitMessage, onStop, isRunning, onStartTranscribe, onCancelTranscribe, onFinishTranscribe, onAddFile, onChange, value, toolsMenu, autoFocus, textArea, sendButton, startTranscribeButton, cancelTranscribeButton, finishTranscribeButton, addMenuButton, audioRecorder, children, className, ...props }: CopilotChatInputProps): react_jsx_runtime.JSX.Element;
|
|
48
|
-
declare namespace CopilotChatInput {
|
|
49
|
-
const SendButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
50
|
-
const ToolbarButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
51
|
-
icon: React__default.ReactNode;
|
|
52
|
-
labelKey: keyof CopilotChatLabels;
|
|
53
|
-
defaultClassName?: string;
|
|
54
|
-
}>;
|
|
55
|
-
const StartTranscribeButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
56
|
-
const CancelTranscribeButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
57
|
-
const FinishTranscribeButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
58
|
-
const AddMenuButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
59
|
-
toolsMenu?: (ToolsMenuItem | "-")[];
|
|
60
|
-
onAddFile?: () => void;
|
|
61
|
-
}>;
|
|
62
|
-
type TextAreaProps = React__default.TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
63
|
-
const TextArea: React__default.ForwardRefExoticComponent<TextAreaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
|
|
64
|
-
const AudioRecorder: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<any>>;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export { CopilotChatInput, type CopilotChatInputMode, type CopilotChatInputProps, type ToolsMenuItem, CopilotChatInput as default };
|