@copilotkitnext/react 0.0.22-alpha.4 → 0.0.22-alpha.5
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 +4 -4
- 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/CopilotChatInput.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n KeyboardEvent,\n ChangeEvent,\n useEffect,\n useLayoutEffect,\n forwardRef,\n useImperativeHandle,\n useCallback,\n useMemo,\n} from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Plus, Mic, ArrowUp, X, Check, Square } from \"lucide-react\";\n\nimport {\n CopilotChatLabels,\n useCopilotChatConfiguration,\n CopilotChatDefaultLabels,\n} from \"@/providers/CopilotChatConfigurationProvider\";\nimport { Button } from \"@/components/ui/button\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n DropdownMenuSeparator,\n} from \"@/components/ui/dropdown-menu\";\n\nimport { CopilotChatAudioRecorder } from \"./CopilotChatAudioRecorder\";\nimport { renderSlot, WithSlots } from \"@/lib/slots\";\n\nexport type CopilotChatInputMode = \"input\" | \"transcribe\" | \"processing\";\n\nexport type ToolsMenuItem = {\n label: string;\n} & (\n | {\n action: () => void;\n items?: never;\n }\n | {\n action?: never;\n items: (ToolsMenuItem | \"-\")[];\n }\n);\n\ntype CopilotChatInputSlots = {\n textArea: typeof CopilotChatInput.TextArea;\n sendButton: typeof CopilotChatInput.SendButton;\n startTranscribeButton: typeof CopilotChatInput.StartTranscribeButton;\n cancelTranscribeButton: typeof CopilotChatInput.CancelTranscribeButton;\n finishTranscribeButton: typeof CopilotChatInput.FinishTranscribeButton;\n addMenuButton: typeof CopilotChatInput.AddMenuButton;\n audioRecorder: typeof CopilotChatAudioRecorder;\n};\n\ntype CopilotChatInputRestProps = {\n mode?: CopilotChatInputMode;\n toolsMenu?: (ToolsMenuItem | \"-\")[];\n autoFocus?: boolean;\n onSubmitMessage?: (value: string) => void;\n onStop?: () => void;\n isRunning?: boolean;\n onStartTranscribe?: () => void;\n onCancelTranscribe?: () => void;\n onFinishTranscribe?: () => void;\n onAddFile?: () => void;\n value?: string;\n onChange?: (value: string) => void;\n} & Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">;\n\ntype CopilotChatInputBaseProps = WithSlots<CopilotChatInputSlots, CopilotChatInputRestProps>;\n\ntype CopilotChatInputChildrenArgs = CopilotChatInputBaseProps extends { children?: infer C }\n ? C extends (props: infer P) => React.ReactNode\n ? P\n : never\n : never;\n\nexport type CopilotChatInputProps = Omit<CopilotChatInputBaseProps, \"children\"> & {\n children?: (props: CopilotChatInputChildrenArgs) => React.ReactNode;\n};\n\nconst SLASH_MENU_MAX_VISIBLE_ITEMS = 5;\nconst SLASH_MENU_ITEM_HEIGHT_PX = 40;\n\nexport function CopilotChatInput({\n mode = \"input\",\n onSubmitMessage,\n onStop,\n isRunning = false,\n onStartTranscribe,\n onCancelTranscribe,\n onFinishTranscribe,\n onAddFile,\n onChange,\n value,\n toolsMenu,\n autoFocus = true,\n textArea,\n sendButton,\n startTranscribeButton,\n cancelTranscribeButton,\n finishTranscribeButton,\n addMenuButton,\n audioRecorder,\n children,\n className,\n ...props\n}: CopilotChatInputProps) {\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(() => value ?? \"\");\n\n useEffect(() => {\n if (!isControlled && value !== undefined) {\n setInternalValue(value);\n }\n }, [isControlled, value]);\n\n const resolvedValue = isControlled ? (value ?? \"\") : internalValue;\n\n const [layout, setLayout] = useState<\"compact\" | \"expanded\">(\"compact\");\n const ignoreResizeRef = useRef(false);\n const resizeEvaluationRafRef = useRef<number | null>(null);\n const isExpanded = mode === \"input\" && layout === \"expanded\";\n const [commandQuery, setCommandQuery] = useState<string | null>(null);\n const [slashHighlightIndex, setSlashHighlightIndex] = useState(0);\n\n const inputRef = useRef<HTMLTextAreaElement>(null);\n const gridRef = useRef<HTMLDivElement>(null);\n const addButtonContainerRef = useRef<HTMLDivElement>(null);\n const actionsContainerRef = useRef<HTMLDivElement>(null);\n const audioRecorderRef = useRef<React.ElementRef<typeof CopilotChatAudioRecorder>>(null);\n const slashMenuRef = useRef<HTMLDivElement>(null);\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n\n const previousModalStateRef = useRef<boolean | undefined>(undefined);\n const measurementCanvasRef = useRef<HTMLCanvasElement | null>(null);\n const measurementsRef = useRef({\n singleLineHeight: 0,\n maxHeight: 0,\n paddingLeft: 0,\n paddingRight: 0,\n });\n\n const commandItems = useMemo(() => {\n const entries: ToolsMenuItem[] = [];\n const seen = new Set<string>();\n\n const pushItem = (item: ToolsMenuItem | \"-\") => {\n if (item === \"-\") {\n return;\n }\n\n if (item.items && item.items.length > 0) {\n for (const nested of item.items) {\n pushItem(nested);\n }\n return;\n }\n\n if (!seen.has(item.label)) {\n seen.add(item.label);\n entries.push(item);\n }\n };\n\n if (onAddFile) {\n pushItem({\n label: labels.chatInputToolbarAddButtonLabel,\n action: onAddFile,\n });\n }\n\n if (toolsMenu && toolsMenu.length > 0) {\n for (const item of toolsMenu) {\n pushItem(item);\n }\n }\n\n return entries;\n }, [labels.chatInputToolbarAddButtonLabel, onAddFile, toolsMenu]);\n\n const filteredCommands = useMemo(() => {\n if (commandQuery === null) {\n return [] as ToolsMenuItem[];\n }\n\n if (commandItems.length === 0) {\n return [] as ToolsMenuItem[];\n }\n\n const query = commandQuery.trim().toLowerCase();\n if (query.length === 0) {\n return commandItems;\n }\n\n const startsWith: ToolsMenuItem[] = [];\n const contains: ToolsMenuItem[] = [];\n for (const item of commandItems) {\n const label = item.label.toLowerCase();\n if (label.startsWith(query)) {\n startsWith.push(item);\n } else if (label.includes(query)) {\n contains.push(item);\n }\n }\n\n return [...startsWith, ...contains];\n }, [commandItems, commandQuery]);\n\n useEffect(() => {\n if (!autoFocus) {\n previousModalStateRef.current = config?.isModalOpen;\n return;\n }\n\n if (config?.isModalOpen && !previousModalStateRef.current) {\n inputRef.current?.focus();\n }\n\n previousModalStateRef.current = config?.isModalOpen;\n }, [config?.isModalOpen, autoFocus]);\n\n useEffect(() => {\n if (commandItems.length === 0 && commandQuery !== null) {\n setCommandQuery(null);\n }\n }, [commandItems.length, commandQuery]);\n\n const previousCommandQueryRef = useRef<string | null>(null);\n\n useEffect(() => {\n if (\n commandQuery !== null &&\n commandQuery !== previousCommandQueryRef.current &&\n filteredCommands.length > 0\n ) {\n setSlashHighlightIndex(0);\n }\n\n previousCommandQueryRef.current = commandQuery;\n }, [commandQuery, filteredCommands.length]);\n\n useEffect(() => {\n if (commandQuery === null) {\n setSlashHighlightIndex(0);\n return;\n }\n\n if (filteredCommands.length === 0) {\n setSlashHighlightIndex(-1);\n } else if (slashHighlightIndex < 0 || slashHighlightIndex >= filteredCommands.length) {\n setSlashHighlightIndex(0);\n }\n }, [commandQuery, filteredCommands, slashHighlightIndex]);\n\n // Handle recording based on mode changes\n useEffect(() => {\n const recorder = audioRecorderRef.current;\n if (!recorder) {\n return;\n }\n\n if (mode === \"transcribe\") {\n // Start recording when entering transcribe mode\n recorder.start().catch(console.error);\n } else {\n // Stop recording when leaving transcribe mode\n if (recorder.state === \"recording\") {\n recorder.stop().catch(console.error);\n }\n }\n }, [mode]);\n\n useEffect(() => {\n if (mode !== \"input\") {\n setLayout(\"compact\");\n setCommandQuery(null);\n }\n }, [mode]);\n\n const updateSlashState = useCallback(\n (value: string) => {\n if (commandItems.length === 0) {\n setCommandQuery((prev) => (prev === null ? prev : null));\n return;\n }\n\n if (value.startsWith(\"/\")) {\n const firstLine = value.split(/\\r?\\n/, 1)[0] ?? \"\";\n const query = firstLine.slice(1);\n setCommandQuery((prev) => (prev === query ? prev : query));\n } else {\n setCommandQuery((prev) => (prev === null ? prev : null));\n }\n },\n [commandItems.length],\n );\n\n useEffect(() => {\n updateSlashState(resolvedValue);\n }, [resolvedValue, updateSlashState]);\n\n // Handlers\n const handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n const nextValue = e.target.value;\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n onChange?.(nextValue);\n updateSlashState(nextValue);\n };\n\n const clearInputValue = useCallback(() => {\n if (!isControlled) {\n setInternalValue(\"\");\n }\n\n if (onChange) {\n onChange(\"\");\n }\n }, [isControlled, onChange]);\n\n const runCommand = useCallback(\n (item: ToolsMenuItem) => {\n clearInputValue();\n\n item.action?.();\n\n setCommandQuery(null);\n setSlashHighlightIndex(0);\n\n requestAnimationFrame(() => {\n inputRef.current?.focus();\n });\n },\n [clearInputValue],\n );\n\n const handleKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (commandQuery !== null && mode === \"input\") {\n if (e.key === \"ArrowDown\") {\n if (filteredCommands.length > 0) {\n e.preventDefault();\n setSlashHighlightIndex((prev) => {\n if (filteredCommands.length === 0) {\n return prev;\n }\n const next = prev === -1 ? 0 : (prev + 1) % filteredCommands.length;\n return next;\n });\n }\n return;\n }\n\n if (e.key === \"ArrowUp\") {\n if (filteredCommands.length > 0) {\n e.preventDefault();\n setSlashHighlightIndex((prev) => {\n if (filteredCommands.length === 0) {\n return prev;\n }\n if (prev === -1) {\n return filteredCommands.length - 1;\n }\n return prev <= 0 ? filteredCommands.length - 1 : prev - 1;\n });\n }\n return;\n }\n\n if (e.key === \"Enter\") {\n const selected = slashHighlightIndex >= 0 ? filteredCommands[slashHighlightIndex] : undefined;\n if (selected) {\n e.preventDefault();\n runCommand(selected);\n return;\n }\n }\n\n if (e.key === \"Escape\") {\n e.preventDefault();\n setCommandQuery(null);\n return;\n }\n }\n\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n if (isProcessing) {\n onStop?.();\n } else {\n send();\n }\n }\n };\n\n const send = () => {\n if (!onSubmitMessage) {\n return;\n }\n const trimmed = resolvedValue.trim();\n if (!trimmed) {\n return;\n }\n\n onSubmitMessage(trimmed);\n\n if (!isControlled) {\n setInternalValue(\"\");\n onChange?.(\"\");\n }\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n const BoundTextArea = renderSlot(textArea, CopilotChatInput.TextArea, {\n ref: inputRef,\n value: resolvedValue,\n onChange: handleChange,\n onKeyDown: handleKeyDown,\n autoFocus: autoFocus,\n className: twMerge(\n \"w-full py-3\",\n isExpanded ? \"px-5\" : \"pr-5\",\n ),\n });\n\n const isProcessing = mode !== \"transcribe\" && isRunning;\n const canSend = resolvedValue.trim().length > 0 && !!onSubmitMessage;\n const canStop = !!onStop;\n\n const handleSendButtonClick = () => {\n if (isProcessing) {\n onStop?.();\n return;\n }\n send();\n };\n\n const BoundAudioRecorder = renderSlot(audioRecorder, CopilotChatAudioRecorder, {\n ref: audioRecorderRef,\n });\n\n const BoundSendButton = renderSlot(sendButton, CopilotChatInput.SendButton, {\n onClick: handleSendButtonClick,\n disabled: isProcessing ? !canStop : !canSend,\n children: isProcessing && canStop ? <Square className=\"size-[18px] fill-current\" /> : undefined,\n });\n\n const BoundStartTranscribeButton = renderSlot(startTranscribeButton, CopilotChatInput.StartTranscribeButton, {\n onClick: onStartTranscribe,\n });\n\n const BoundCancelTranscribeButton = renderSlot(cancelTranscribeButton, CopilotChatInput.CancelTranscribeButton, {\n onClick: onCancelTranscribe,\n });\n\n const BoundFinishTranscribeButton = renderSlot(finishTranscribeButton, CopilotChatInput.FinishTranscribeButton, {\n onClick: onFinishTranscribe,\n });\n\n const BoundAddMenuButton = renderSlot(addMenuButton, CopilotChatInput.AddMenuButton, {\n disabled: mode === \"transcribe\",\n onAddFile,\n toolsMenu,\n });\n\n if (children) {\n const childProps = {\n textArea: BoundTextArea,\n audioRecorder: BoundAudioRecorder,\n sendButton: BoundSendButton,\n startTranscribeButton: BoundStartTranscribeButton,\n cancelTranscribeButton: BoundCancelTranscribeButton,\n finishTranscribeButton: BoundFinishTranscribeButton,\n addMenuButton: BoundAddMenuButton,\n onSubmitMessage,\n onStop,\n isRunning,\n onStartTranscribe,\n onCancelTranscribe,\n onFinishTranscribe,\n onAddFile,\n mode,\n toolsMenu,\n autoFocus,\n } as CopilotChatInputChildrenArgs;\n\n return <>{children(childProps)}</>;\n }\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // Don't focus if clicking on buttons or other interactive elements\n const target = e.target as HTMLElement;\n if (target.tagName !== \"BUTTON\" && !target.closest(\"button\") && inputRef.current && mode === \"input\") {\n inputRef.current.focus();\n }\n };\n\n const ensureMeasurements = useCallback(() => {\n const textarea = inputRef.current;\n if (!textarea) {\n return;\n }\n\n const previousValue = textarea.value;\n const previousHeight = textarea.style.height;\n\n textarea.style.height = \"auto\";\n\n const computedStyle = window.getComputedStyle(textarea);\n const paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;\n const paddingRight = parseFloat(computedStyle.paddingRight) || 0;\n const paddingTop = parseFloat(computedStyle.paddingTop) || 0;\n const paddingBottom = parseFloat(computedStyle.paddingBottom) || 0;\n\n textarea.value = \"\";\n const singleLineHeight = textarea.scrollHeight;\n textarea.value = previousValue;\n\n const contentHeight = singleLineHeight - paddingTop - paddingBottom;\n const maxHeight = contentHeight * 5 + paddingTop + paddingBottom;\n\n measurementsRef.current = {\n singleLineHeight,\n maxHeight,\n paddingLeft,\n paddingRight,\n };\n\n textarea.style.height = previousHeight;\n textarea.style.maxHeight = `${maxHeight}px`;\n }, []);\n\n const adjustTextareaHeight = useCallback(() => {\n const textarea = inputRef.current;\n if (!textarea) {\n return 0;\n }\n\n if (measurementsRef.current.singleLineHeight === 0) {\n ensureMeasurements();\n }\n\n const { maxHeight } = measurementsRef.current;\n if (maxHeight) {\n textarea.style.maxHeight = `${maxHeight}px`;\n }\n\n textarea.style.height = \"auto\";\n const scrollHeight = textarea.scrollHeight;\n if (maxHeight) {\n textarea.style.height = `${Math.min(scrollHeight, maxHeight)}px`;\n } else {\n textarea.style.height = `${scrollHeight}px`;\n }\n\n return scrollHeight;\n }, [ensureMeasurements]);\n\n const updateLayout = useCallback((nextLayout: \"compact\" | \"expanded\") => {\n setLayout((prev) => {\n if (prev === nextLayout) {\n return prev;\n }\n ignoreResizeRef.current = true;\n return nextLayout;\n });\n }, []);\n\n const evaluateLayout = useCallback(() => {\n if (mode !== \"input\") {\n updateLayout(\"compact\");\n return;\n }\n\n if (typeof window !== \"undefined\" && typeof window.matchMedia === \"function\") {\n const isMobileViewport = window.matchMedia(\"(max-width: 767px)\").matches;\n if (isMobileViewport) {\n ensureMeasurements();\n adjustTextareaHeight();\n updateLayout(\"expanded\");\n return;\n }\n }\n\n const textarea = inputRef.current;\n const grid = gridRef.current;\n const addContainer = addButtonContainerRef.current;\n const actionsContainer = actionsContainerRef.current;\n\n if (!textarea || !grid || !addContainer || !actionsContainer) {\n return;\n }\n\n if (measurementsRef.current.singleLineHeight === 0) {\n ensureMeasurements();\n }\n\n const scrollHeight = adjustTextareaHeight();\n const baseline = measurementsRef.current.singleLineHeight;\n const hasExplicitBreak = resolvedValue.includes(\"\\n\");\n const renderedMultiline = baseline > 0 ? scrollHeight > baseline + 1 : false;\n let shouldExpand = hasExplicitBreak || renderedMultiline;\n\n if (!shouldExpand) {\n const gridStyles = window.getComputedStyle(grid);\n const paddingLeft = parseFloat(gridStyles.paddingLeft) || 0;\n const paddingRight = parseFloat(gridStyles.paddingRight) || 0;\n const columnGap = parseFloat(gridStyles.columnGap) || 0;\n const gridAvailableWidth = grid.clientWidth - paddingLeft - paddingRight;\n\n if (gridAvailableWidth > 0) {\n const addWidth = addContainer.getBoundingClientRect().width;\n const actionsWidth = actionsContainer.getBoundingClientRect().width;\n const compactWidth = Math.max(gridAvailableWidth - addWidth - actionsWidth - columnGap * 2, 0);\n\n const canvas = measurementCanvasRef.current ?? document.createElement(\"canvas\");\n if (!measurementCanvasRef.current) {\n measurementCanvasRef.current = canvas;\n }\n\n const context = canvas.getContext(\"2d\");\n if (context) {\n const textareaStyles = window.getComputedStyle(textarea);\n const font =\n textareaStyles.font ||\n `${textareaStyles.fontStyle} ${textareaStyles.fontVariant} ${textareaStyles.fontWeight} ${textareaStyles.fontSize}/${textareaStyles.lineHeight} ${textareaStyles.fontFamily}`;\n context.font = font;\n\n const compactInnerWidth = Math.max(\n compactWidth - (measurementsRef.current.paddingLeft || 0) - (measurementsRef.current.paddingRight || 0),\n 0,\n );\n\n if (compactInnerWidth > 0) {\n const lines = resolvedValue.length > 0 ? resolvedValue.split(\"\\n\") : [\"\"];\n let longestWidth = 0;\n for (const line of lines) {\n const metrics = context.measureText(line || \" \");\n if (metrics.width > longestWidth) {\n longestWidth = metrics.width;\n }\n }\n\n if (longestWidth > compactInnerWidth) {\n shouldExpand = true;\n }\n }\n }\n }\n }\n\n const nextLayout = shouldExpand ? \"expanded\" : \"compact\";\n updateLayout(nextLayout);\n }, [adjustTextareaHeight, ensureMeasurements, mode, resolvedValue, updateLayout]);\n\n useLayoutEffect(() => {\n evaluateLayout();\n }, [evaluateLayout]);\n\n useEffect(() => {\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n\n const textarea = inputRef.current;\n const grid = gridRef.current;\n const addContainer = addButtonContainerRef.current;\n const actionsContainer = actionsContainerRef.current;\n\n if (!textarea || !grid || !addContainer || !actionsContainer) {\n return;\n }\n\n const scheduleEvaluation = () => {\n if (ignoreResizeRef.current) {\n ignoreResizeRef.current = false;\n return;\n }\n\n if (typeof window === \"undefined\") {\n evaluateLayout();\n return;\n }\n\n if (resizeEvaluationRafRef.current !== null) {\n cancelAnimationFrame(resizeEvaluationRafRef.current);\n }\n\n resizeEvaluationRafRef.current = window.requestAnimationFrame(() => {\n resizeEvaluationRafRef.current = null;\n evaluateLayout();\n });\n };\n\n const observer = new ResizeObserver(() => {\n scheduleEvaluation();\n });\n\n observer.observe(grid);\n observer.observe(addContainer);\n observer.observe(actionsContainer);\n observer.observe(textarea);\n\n return () => {\n observer.disconnect();\n if (typeof window !== \"undefined\" && resizeEvaluationRafRef.current !== null) {\n cancelAnimationFrame(resizeEvaluationRafRef.current);\n resizeEvaluationRafRef.current = null;\n }\n };\n }, [evaluateLayout]);\n\n const slashMenuVisible = commandQuery !== null && commandItems.length > 0;\n\n useEffect(() => {\n if (!slashMenuVisible || slashHighlightIndex < 0) {\n return;\n }\n\n const active = slashMenuRef.current?.querySelector<HTMLElement>(\n `[data-slash-index=\"${slashHighlightIndex}\"]`,\n );\n active?.scrollIntoView({ block: \"nearest\" });\n }, [slashMenuVisible, slashHighlightIndex]);\n\n const slashMenu = slashMenuVisible ? (\n <div\n data-testid=\"copilot-slash-menu\"\n role=\"listbox\"\n aria-label=\"Slash commands\"\n ref={slashMenuRef}\n className=\"absolute bottom-full left-0 right-0 z-30 mb-2 max-h-64 overflow-y-auto rounded-lg border border-border bg-white shadow-lg dark:border-[#3a3a3a] dark:bg-[#1f1f1f]\"\n style={{ maxHeight: `${SLASH_MENU_MAX_VISIBLE_ITEMS * SLASH_MENU_ITEM_HEIGHT_PX}px` }}\n >\n {filteredCommands.length === 0 ? (\n <div className=\"px-3 py-2 text-sm text-muted-foreground\">No commands found</div>\n ) : (\n filteredCommands.map((item, index) => {\n const isActive = index === slashHighlightIndex;\n return (\n <button\n key={`${item.label}-${index}`}\n type=\"button\"\n role=\"option\"\n aria-selected={isActive}\n data-active={isActive ? \"true\" : undefined}\n data-slash-index={index}\n className={twMerge(\n \"w-full px-3 py-2 text-left text-sm transition-colors\",\n \"hover:bg-muted dark:hover:bg-[#2f2f2f]\",\n isActive ? \"bg-muted dark:bg-[#2f2f2f]\" : \"bg-transparent\",\n )}\n onMouseEnter={() => setSlashHighlightIndex(index)}\n onMouseDown={(event) => {\n event.preventDefault();\n runCommand(item);\n }}\n >\n {item.label}\n </button>\n );\n })\n )}\n </div>\n ) : null;\n\n return (\n <div\n className={twMerge(\n // Layout\n \"flex w-full flex-col items-center justify-center\",\n // Interaction\n \"cursor-text\",\n // Overflow and clipping\n \"overflow-visible bg-clip-padding contain-inline-size\",\n // Background\n \"bg-white dark:bg-[#303030]\",\n // Visual effects\n \"shadow-[0_4px_4px_0_#0000000a,0_0_1px_0_#0000009e] rounded-[28px]\",\n className,\n )}\n onClick={handleContainerClick}\n {...props}\n data-layout={isExpanded ? \"expanded\" : \"compact\"}\n >\n <div\n ref={gridRef}\n className={twMerge(\n \"grid w-full gap-x-3 gap-y-3 px-3 py-2\",\n isExpanded\n ? \"grid-cols-[auto_minmax(0,1fr)_auto] grid-rows-[auto_auto]\"\n : \"grid-cols-[auto_minmax(0,1fr)_auto] items-center\",\n )}\n data-layout={isExpanded ? \"expanded\" : \"compact\"}\n >\n <div\n ref={addButtonContainerRef}\n className={twMerge(\n \"flex items-center\",\n isExpanded ? \"row-start-2\" : \"row-start-1\",\n \"col-start-1\",\n )}\n >\n {BoundAddMenuButton}\n </div>\n <div\n className={twMerge(\n \"relative flex min-w-0 flex-col\",\n isExpanded ? \"col-span-3 row-start-1\" : \"col-start-2 row-start-1\",\n )}\n >\n {mode === \"transcribe\" ? (\n BoundAudioRecorder\n ) : (\n <>\n {BoundTextArea}\n {slashMenu}\n </>\n )}\n </div>\n <div\n ref={actionsContainerRef}\n className={twMerge(\n \"flex items-center justify-end gap-2\",\n isExpanded ? \"col-start-3 row-start-2\" : \"col-start-3 row-start-1\",\n )}\n >\n {mode === \"transcribe\" ? (\n <>\n {onCancelTranscribe && BoundCancelTranscribeButton}\n {onFinishTranscribe && BoundFinishTranscribeButton}\n </>\n ) : (\n <>\n {onStartTranscribe && BoundStartTranscribeButton}\n {BoundSendButton}\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace CopilotChatInput {\n export const SendButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement>> = ({ className, children, ...props }) => (\n <div className=\"mr-[10px]\">\n <Button\n type=\"button\"\n variant=\"chatInputToolbarPrimary\"\n size=\"chatInputToolbarIcon\"\n className={className}\n {...props}\n >\n {children ?? <ArrowUp className=\"size-[18px]\" />}\n </Button>\n </div>\n );\n\n export const ToolbarButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n icon: React.ReactNode;\n labelKey: keyof CopilotChatLabels;\n defaultClassName?: string;\n }\n > = ({ icon, labelKey, defaultClassName, className, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n type=\"button\"\n variant=\"chatInputToolbarSecondary\"\n size=\"chatInputToolbarIcon\"\n className={twMerge(defaultClassName, className)}\n {...props}\n >\n {icon}\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n <p>{labels[labelKey]}</p>\n </TooltipContent>\n </Tooltip>\n );\n };\n\n export const StartTranscribeButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement>> = (props) => (\n <ToolbarButton\n icon={<Mic className=\"size-[18px]\" />}\n labelKey=\"chatInputToolbarStartTranscribeButtonLabel\"\n defaultClassName=\"mr-2\"\n {...props}\n />\n );\n\n export const CancelTranscribeButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement>> = (props) => (\n <ToolbarButton\n icon={<X className=\"size-[18px]\" />}\n labelKey=\"chatInputToolbarCancelTranscribeButtonLabel\"\n defaultClassName=\"mr-2\"\n {...props}\n />\n );\n\n export const FinishTranscribeButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement>> = (props) => (\n <ToolbarButton\n icon={<Check className=\"size-[18px]\" />}\n labelKey=\"chatInputToolbarFinishTranscribeButtonLabel\"\n defaultClassName=\"mr-[10px]\"\n {...props}\n />\n );\n\n export const AddMenuButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n toolsMenu?: (ToolsMenuItem | \"-\")[];\n onAddFile?: () => void;\n }\n > = ({ className, toolsMenu, onAddFile, disabled, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n\n const menuItems = useMemo<(ToolsMenuItem | \"-\")[]>(() => {\n const items: (ToolsMenuItem | \"-\")[] = [];\n\n if (onAddFile) {\n items.push({\n label: labels.chatInputToolbarAddButtonLabel,\n action: onAddFile,\n });\n }\n\n if (toolsMenu && toolsMenu.length > 0) {\n if (items.length > 0) {\n items.push(\"-\");\n }\n\n for (const item of toolsMenu) {\n if (item === \"-\") {\n if (items.length === 0 || items[items.length - 1] === \"-\") {\n continue;\n }\n items.push(item);\n } else {\n items.push(item);\n }\n }\n\n while (items.length > 0 && items[items.length - 1] === \"-\") {\n items.pop();\n }\n }\n\n return items;\n }, [onAddFile, toolsMenu, labels.chatInputToolbarAddButtonLabel]);\n\n const renderMenuItems = useCallback(\n (items: (ToolsMenuItem | \"-\")[]): React.ReactNode =>\n items.map((item, index) => {\n if (item === \"-\") {\n return <DropdownMenuSeparator key={`separator-${index}`} />;\n }\n\n if (item.items && item.items.length > 0) {\n return (\n <DropdownMenuSub key={`group-${index}`}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuSubContent>{renderMenuItems(item.items)}</DropdownMenuSubContent>\n </DropdownMenuSub>\n );\n }\n\n return (\n <DropdownMenuItem key={`item-${index}`} onClick={item.action}>\n {item.label}\n </DropdownMenuItem>\n );\n }),\n [],\n );\n\n const hasMenuItems = menuItems.length > 0;\n const isDisabled = disabled || !hasMenuItems;\n\n return (\n <DropdownMenu>\n <Tooltip>\n <TooltipTrigger asChild>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"chatInputToolbarSecondary\"\n size=\"chatInputToolbarIcon\"\n className={twMerge(\"ml-1\", className)}\n disabled={isDisabled}\n {...props}\n >\n <Plus className=\"size-[20px]\" />\n </Button>\n </DropdownMenuTrigger>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n <p className=\"flex items-center gap-1 text-xs font-medium\">\n <span>Add files and more</span>\n <code className=\"rounded bg-[#4a4a4a] px-1 py-[1px] font-mono text-[11px] text-white dark:bg-[#e0e0e0] dark:text-black\">/</code>\n </p>\n </TooltipContent>\n </Tooltip>\n {hasMenuItems && (\n <DropdownMenuContent side=\"top\" align=\"start\">\n {renderMenuItems(menuItems)}\n </DropdownMenuContent>\n )}\n </DropdownMenu>\n );\n };\n\n export type TextAreaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\n export const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(function TextArea(\n { style, className, autoFocus, ...props },\n ref,\n ) {\n const internalTextareaRef = useRef<HTMLTextAreaElement>(null);\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n\n useImperativeHandle(ref, () => internalTextareaRef.current as HTMLTextAreaElement);\n\n // Auto-scroll input into view on mobile when focused\n useEffect(() => {\n const textarea = internalTextareaRef.current;\n if (!textarea) return;\n\n const handleFocus = () => {\n // Small delay to let the keyboard start appearing\n setTimeout(() => {\n textarea.scrollIntoView({ behavior: \"smooth\", block: \"nearest\" });\n }, 300);\n };\n\n textarea.addEventListener(\"focus\", handleFocus);\n return () => textarea.removeEventListener(\"focus\", handleFocus);\n }, []);\n\n useEffect(() => {\n if (autoFocus) {\n internalTextareaRef.current?.focus();\n }\n }, [autoFocus]);\n\n return (\n <textarea\n ref={internalTextareaRef}\n {...props}\n style={{\n overflow: \"auto\",\n resize: \"none\",\n ...style,\n }}\n placeholder={labels.chatInputPlaceholder}\n className={twMerge(\n \"bg-transparent outline-none antialiased font-regular leading-relaxed text-[16px] placeholder:text-[#00000077] dark:placeholder:text-[#fffc]\",\n className,\n )}\n rows={1}\n />\n );\n });\n\n export const AudioRecorder = CopilotChatAudioRecorder;\n}\n\nCopilotChatInput.TextArea.displayName = \"CopilotChatInput.TextArea\";\nCopilotChatInput.SendButton.displayName = \"CopilotChatInput.SendButton\";\nCopilotChatInput.ToolbarButton.displayName = \"CopilotChatInput.ToolbarButton\";\nCopilotChatInput.StartTranscribeButton.displayName = \"CopilotChatInput.StartTranscribeButton\";\nCopilotChatInput.CancelTranscribeButton.displayName = \"CopilotChatInput.CancelTranscribeButton\";\nCopilotChatInput.FinishTranscribeButton.displayName = \"CopilotChatInput.FinishTranscribeButton\";\nCopilotChatInput.AddMenuButton.displayName = \"CopilotChatInput.AddMenuButton\";\n\nexport default CopilotChatInput;\n"],"mappings":"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","names":["value","CopilotChatInput","TextArea"]}
|
package/dist/chunk-VBI6JXPC.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-VBI6JXPC.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-VVAXSF3M.mjs
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
cn
|
|
3
|
-
} from "./chunk-XO4IRKSC.mjs";
|
|
4
|
-
|
|
5
|
-
// src/components/ui/tooltip.tsx
|
|
6
|
-
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
7
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
function TooltipProvider({
|
|
9
|
-
delayDuration = 0,
|
|
10
|
-
...props
|
|
11
|
-
}) {
|
|
12
|
-
return /* @__PURE__ */ jsx(
|
|
13
|
-
TooltipPrimitive.Provider,
|
|
14
|
-
{
|
|
15
|
-
"data-slot": "tooltip-provider",
|
|
16
|
-
delayDuration,
|
|
17
|
-
...props
|
|
18
|
-
}
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
function Tooltip({
|
|
22
|
-
...props
|
|
23
|
-
}) {
|
|
24
|
-
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
25
|
-
}
|
|
26
|
-
function TooltipTrigger({
|
|
27
|
-
...props
|
|
28
|
-
}) {
|
|
29
|
-
return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
30
|
-
}
|
|
31
|
-
function TooltipContent({
|
|
32
|
-
className,
|
|
33
|
-
sideOffset = 0,
|
|
34
|
-
children,
|
|
35
|
-
...props
|
|
36
|
-
}) {
|
|
37
|
-
return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
38
|
-
TooltipPrimitive.Content,
|
|
39
|
-
{
|
|
40
|
-
"data-slot": "tooltip-content",
|
|
41
|
-
sideOffset,
|
|
42
|
-
className: cn(
|
|
43
|
-
"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",
|
|
44
|
-
className
|
|
45
|
-
),
|
|
46
|
-
...props,
|
|
47
|
-
children: [
|
|
48
|
-
children,
|
|
49
|
-
/* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
) });
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export {
|
|
56
|
-
TooltipProvider,
|
|
57
|
-
Tooltip,
|
|
58
|
-
TooltipTrigger,
|
|
59
|
-
TooltipContent
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=chunk-VVAXSF3M.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/tooltip.tsx"],"sourcesContent":["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"],"mappings":";;;;;AACA,YAAY,sBAAsB;AAS9B,cAgCE,YAhCF;AALJ,SAAS,gBAAgB;AAAA,EACvB,gBAAgB;AAAA,EAChB,GAAG;AACL,GAA2D;AACzD,SACE;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ;AAAA,EACf,GAAG;AACL,GAAuD;AACrD,SACE,oBAAC,mBACC,8BAAkB,uBAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO,GACxD;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB,GAAG;AACL,GAA0D;AACxD,SAAO,oBAAkB,0BAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC1E;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE,oBAAkB,yBAAjB,EACC;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,oBAAkB,wBAAjB,EAAuB,WAAU,gGAA+F;AAAA;AAAA;AAAA,EACnI,GACF;AAEJ;","names":[]}
|
package/dist/chunk-XO4IRKSC.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";AAAA,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;","names":[]}
|
package/dist/chunk-XU5CEPYQ.mjs
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useCopilotChatConfiguration
|
|
3
|
-
} from "./chunk-4XJK5IVQ.mjs";
|
|
4
|
-
import {
|
|
5
|
-
useCopilotKit
|
|
6
|
-
} from "./chunk-RF2CGPHQ.mjs";
|
|
7
|
-
|
|
8
|
-
// src/hooks/use-suggestions.tsx
|
|
9
|
-
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
10
|
-
import { DEFAULT_AGENT_ID } from "@copilotkitnext/shared";
|
|
11
|
-
function useSuggestions({ agentId } = {}) {
|
|
12
|
-
const { copilotkit } = useCopilotKit();
|
|
13
|
-
const config = useCopilotChatConfiguration();
|
|
14
|
-
const resolvedAgentId = useMemo(() => agentId ?? config?.agentId ?? DEFAULT_AGENT_ID, [agentId, config?.agentId]);
|
|
15
|
-
const [suggestions, setSuggestions] = useState(() => {
|
|
16
|
-
const result = copilotkit.getSuggestions(resolvedAgentId);
|
|
17
|
-
return result.suggestions;
|
|
18
|
-
});
|
|
19
|
-
const [isLoading, setIsLoading] = useState(() => {
|
|
20
|
-
const result = copilotkit.getSuggestions(resolvedAgentId);
|
|
21
|
-
return result.isLoading;
|
|
22
|
-
});
|
|
23
|
-
useEffect(() => {
|
|
24
|
-
const result = copilotkit.getSuggestions(resolvedAgentId);
|
|
25
|
-
setSuggestions(result.suggestions);
|
|
26
|
-
setIsLoading(result.isLoading);
|
|
27
|
-
}, [copilotkit, resolvedAgentId]);
|
|
28
|
-
useEffect(() => {
|
|
29
|
-
const unsubscribe = copilotkit.subscribe({
|
|
30
|
-
onSuggestionsChanged: ({ agentId: changedAgentId, suggestions: suggestions2 }) => {
|
|
31
|
-
if (changedAgentId !== resolvedAgentId) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
setSuggestions(suggestions2);
|
|
35
|
-
},
|
|
36
|
-
onSuggestionsStartedLoading: ({ agentId: changedAgentId }) => {
|
|
37
|
-
if (changedAgentId !== resolvedAgentId) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
setIsLoading(true);
|
|
41
|
-
},
|
|
42
|
-
onSuggestionsFinishedLoading: ({ agentId: changedAgentId }) => {
|
|
43
|
-
if (changedAgentId !== resolvedAgentId) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
setIsLoading(false);
|
|
47
|
-
},
|
|
48
|
-
onSuggestionsConfigChanged: () => {
|
|
49
|
-
const result = copilotkit.getSuggestions(resolvedAgentId);
|
|
50
|
-
setSuggestions(result.suggestions);
|
|
51
|
-
setIsLoading(result.isLoading);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
return () => {
|
|
55
|
-
unsubscribe();
|
|
56
|
-
};
|
|
57
|
-
}, [copilotkit, resolvedAgentId]);
|
|
58
|
-
const reloadSuggestions = useCallback(() => {
|
|
59
|
-
copilotkit.reloadSuggestions(resolvedAgentId);
|
|
60
|
-
}, [copilotkit, resolvedAgentId]);
|
|
61
|
-
const clearSuggestions = useCallback(() => {
|
|
62
|
-
copilotkit.clearSuggestions(resolvedAgentId);
|
|
63
|
-
}, [copilotkit, resolvedAgentId]);
|
|
64
|
-
return {
|
|
65
|
-
suggestions,
|
|
66
|
-
reloadSuggestions,
|
|
67
|
-
clearSuggestions,
|
|
68
|
-
isLoading
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export {
|
|
73
|
-
useSuggestions
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=chunk-XU5CEPYQ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-suggestions.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;AAAA,SAAS,aAAa,WAAW,SAAS,gBAAgB;AAI1D,SAAS,wBAAwB;AAa1B,SAAS,eAAe,EAAE,QAAQ,IAA2B,CAAC,GAAyB;AAC5F,QAAM,EAAE,WAAW,IAAI,cAAc;AACrC,QAAM,SAAS,4BAA4B;AAC3C,QAAM,kBAAkB,QAAQ,MAAM,WAAW,QAAQ,WAAW,kBAAkB,CAAC,SAAS,QAAQ,OAAO,CAAC;AAEhH,QAAM,CAAC,aAAa,cAAc,IAAI,SAAuB,MAAM;AACjE,UAAM,SAAS,WAAW,eAAe,eAAe;AACxD,WAAO,OAAO;AAAA,EAChB,CAAC;AACD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,MAAM;AAC/C,UAAM,SAAS,WAAW,eAAe,eAAe;AACxD,WAAO,OAAO;AAAA,EAChB,CAAC;AAED,YAAU,MAAM;AACd,UAAM,SAAS,WAAW,eAAe,eAAe;AACxD,mBAAe,OAAO,WAAW;AACjC,iBAAa,OAAO,SAAS;AAAA,EAC/B,GAAG,CAAC,YAAY,eAAe,CAAC;AAEhC,YAAU,MAAM;AACd,UAAM,cAAc,WAAW,UAAU;AAAA,MACvC,sBAAsB,CAAC,EAAE,SAAS,gBAAgB,aAAAA,aAAY,MAAM;AAClE,YAAI,mBAAmB,iBAAiB;AACtC;AAAA,QACF;AACA,uBAAeA,YAAW;AAAA,MAC5B;AAAA,MACA,6BAA6B,CAAC,EAAE,SAAS,eAAe,MAAM;AAC5D,YAAI,mBAAmB,iBAAiB;AACtC;AAAA,QACF;AACA,qBAAa,IAAI;AAAA,MACnB;AAAA,MACA,8BAA8B,CAAC,EAAE,SAAS,eAAe,MAAM;AAC7D,YAAI,mBAAmB,iBAAiB;AACtC;AAAA,QACF;AACA,qBAAa,KAAK;AAAA,MACpB;AAAA,MACA,4BAA4B,MAAM;AAChC,cAAM,SAAS,WAAW,eAAe,eAAe;AACxD,uBAAe,OAAO,WAAW;AACjC,qBAAa,OAAO,SAAS;AAAA,MAC/B;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,YAAY,eAAe,CAAC;AAEhC,QAAM,oBAAoB,YAAY,MAAM;AAC1C,eAAW,kBAAkB,eAAe;AAAA,EAE9C,GAAG,CAAC,YAAY,eAAe,CAAC;AAEhC,QAAM,mBAAmB,YAAY,MAAM;AACzC,eAAW,iBAAiB,eAAe;AAAA,EAE7C,GAAG,CAAC,YAAY,eAAe,CAAC;AAEhC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":["suggestions"]}
|
package/dist/chunk-YPH4BHOY.mjs
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// src/components/CopilotKitInspector.tsx
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { createComponent } from "@lit-labs/react";
|
|
4
|
-
import {
|
|
5
|
-
WEB_INSPECTOR_TAG,
|
|
6
|
-
WebInspectorElement,
|
|
7
|
-
defineWebInspector
|
|
8
|
-
} from "@copilotkitnext/web-inspector";
|
|
9
|
-
import { jsx } from "react/jsx-runtime";
|
|
10
|
-
defineWebInspector();
|
|
11
|
-
var CopilotKitInspectorBase = createComponent({
|
|
12
|
-
tagName: WEB_INSPECTOR_TAG,
|
|
13
|
-
elementClass: WebInspectorElement,
|
|
14
|
-
react: React
|
|
15
|
-
});
|
|
16
|
-
var CopilotKitInspector = React.forwardRef(
|
|
17
|
-
({ core, ...rest }, ref) => {
|
|
18
|
-
const innerRef = React.useRef(null);
|
|
19
|
-
React.useImperativeHandle(ref, () => innerRef.current, []);
|
|
20
|
-
React.useEffect(() => {
|
|
21
|
-
if (innerRef.current) {
|
|
22
|
-
innerRef.current.core = core ?? null;
|
|
23
|
-
}
|
|
24
|
-
}, [core]);
|
|
25
|
-
return /* @__PURE__ */ jsx(
|
|
26
|
-
CopilotKitInspectorBase,
|
|
27
|
-
{
|
|
28
|
-
...rest,
|
|
29
|
-
ref: innerRef
|
|
30
|
-
}
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
CopilotKitInspector.displayName = "CopilotKitInspector";
|
|
35
|
-
|
|
36
|
-
export {
|
|
37
|
-
CopilotKitInspector
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=chunk-YPH4BHOY.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CopilotKitInspector.tsx"],"sourcesContent":["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"],"mappings":";AAAA,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAiCD;AA9BN,mBAAmB;AAEnB,IAAM,0BAA0B,gBAAgB;AAAA,EAC9C,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AACT,CAAC;AAQM,IAAM,sBAA4B;AAAA,EAIvC,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ;AAC1B,UAAM,WAAiB,aAA4B,IAAI;AAEvD,IAAM,0BAAoB,KAAK,MAAM,SAAS,SAAgC,CAAC,CAAC;AAEhF,IAAM,gBAAU,MAAM;AACpB,UAAI,SAAS,SAAS;AACpB,iBAAS,QAAQ,OAAO,QAAQ;AAAA,MAClC;AAAA,IACF,GAAG,CAAC,IAAI,CAAC;AAET,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAI;AAAA,QACL,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;AAEA,oBAAoB,cAAc;","names":[]}
|
package/dist/chunk-YZUPVMHC.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-YZUPVMHC.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as _lit_labs_react from '@lit-labs/react';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { WebInspectorElement } from '@copilotkitnext/web-inspector';
|
|
4
|
-
import { CopilotKitCore } from '@copilotkitnext/core';
|
|
5
|
-
|
|
6
|
-
declare const CopilotKitInspectorBase: _lit_labs_react.ReactWebComponent<WebInspectorElement, {}>;
|
|
7
|
-
type CopilotKitInspectorBaseProps = React.ComponentProps<typeof CopilotKitInspectorBase>;
|
|
8
|
-
interface CopilotKitInspectorProps extends Omit<CopilotKitInspectorBaseProps, "core"> {
|
|
9
|
-
core?: CopilotKitCore | null;
|
|
10
|
-
}
|
|
11
|
-
declare const CopilotKitInspector: React.ForwardRefExoticComponent<Omit<CopilotKitInspectorProps, "ref"> & React.RefAttributes<WebInspectorElement>>;
|
|
12
|
-
|
|
13
|
-
export { CopilotKitInspector, type CopilotKitInspectorBaseProps, type CopilotKitInspectorProps };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as _lit_labs_react from '@lit-labs/react';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { WebInspectorElement } from '@copilotkitnext/web-inspector';
|
|
4
|
-
import { CopilotKitCore } from '@copilotkitnext/core';
|
|
5
|
-
|
|
6
|
-
declare const CopilotKitInspectorBase: _lit_labs_react.ReactWebComponent<WebInspectorElement, {}>;
|
|
7
|
-
type CopilotKitInspectorBaseProps = React.ComponentProps<typeof CopilotKitInspectorBase>;
|
|
8
|
-
interface CopilotKitInspectorProps extends Omit<CopilotKitInspectorBaseProps, "core"> {
|
|
9
|
-
core?: CopilotKitCore | null;
|
|
10
|
-
}
|
|
11
|
-
declare const CopilotKitInspector: React.ForwardRefExoticComponent<Omit<CopilotKitInspectorProps, "ref"> & React.RefAttributes<WebInspectorElement>>;
|
|
12
|
-
|
|
13
|
-
export { CopilotKitInspector, type CopilotKitInspectorBaseProps, type CopilotKitInspectorProps };
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// src/components/CopilotKitInspector.tsx
|
|
31
|
-
var CopilotKitInspector_exports = {};
|
|
32
|
-
__export(CopilotKitInspector_exports, {
|
|
33
|
-
CopilotKitInspector: () => CopilotKitInspector
|
|
34
|
-
});
|
|
35
|
-
module.exports = __toCommonJS(CopilotKitInspector_exports);
|
|
36
|
-
var React = __toESM(require("react"));
|
|
37
|
-
var import_react = require("@lit-labs/react");
|
|
38
|
-
var import_web_inspector = require("@copilotkitnext/web-inspector");
|
|
39
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
40
|
-
(0, import_web_inspector.defineWebInspector)();
|
|
41
|
-
var CopilotKitInspectorBase = (0, import_react.createComponent)({
|
|
42
|
-
tagName: import_web_inspector.WEB_INSPECTOR_TAG,
|
|
43
|
-
elementClass: import_web_inspector.WebInspectorElement,
|
|
44
|
-
react: React
|
|
45
|
-
});
|
|
46
|
-
var CopilotKitInspector = React.forwardRef(
|
|
47
|
-
({ core, ...rest }, ref) => {
|
|
48
|
-
const innerRef = React.useRef(null);
|
|
49
|
-
React.useImperativeHandle(ref, () => innerRef.current, []);
|
|
50
|
-
React.useEffect(() => {
|
|
51
|
-
if (innerRef.current) {
|
|
52
|
-
innerRef.current.core = core ?? null;
|
|
53
|
-
}
|
|
54
|
-
}, [core]);
|
|
55
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
56
|
-
CopilotKitInspectorBase,
|
|
57
|
-
{
|
|
58
|
-
...rest,
|
|
59
|
-
ref: innerRef
|
|
60
|
-
}
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
);
|
|
64
|
-
CopilotKitInspector.displayName = "CopilotKitInspector";
|
|
65
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
-
0 && (module.exports = {
|
|
67
|
-
CopilotKitInspector
|
|
68
|
-
});
|
|
69
|
-
//# sourceMappingURL=CopilotKitInspector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/CopilotKitInspector.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AACvB,mBAAgC;AAChC,2BAIO;AAiCD;AAAA,IA9BN,yCAAmB;AAEnB,IAAM,8BAA0B,8BAAgB;AAAA,EAC9C,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AACT,CAAC;AAQM,IAAM,sBAA4B;AAAA,EAIvC,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ;AAC1B,UAAM,WAAiB,aAA4B,IAAI;AAEvD,IAAM,0BAAoB,KAAK,MAAM,SAAS,SAAgC,CAAC,CAAC;AAEhF,IAAM,gBAAU,MAAM;AACpB,UAAI,SAAS,SAAS;AACpB,iBAAS,QAAQ,OAAO,QAAQ;AAAA,MAClC;AAAA,IACF,GAAG,CAAC,IAAI,CAAC;AAET,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAI;AAAA,QACL,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;AAEA,oBAAoB,cAAc;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,106 +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/WildcardToolCallRender.tsx
|
|
21
|
-
var WildcardToolCallRender_exports = {};
|
|
22
|
-
__export(WildcardToolCallRender_exports, {
|
|
23
|
-
WildcardToolCallRender: () => WildcardToolCallRender
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(WildcardToolCallRender_exports);
|
|
26
|
-
|
|
27
|
-
// src/types/defineToolCallRenderer.ts
|
|
28
|
-
var import_zod = require("zod");
|
|
29
|
-
function defineToolCallRenderer(def) {
|
|
30
|
-
const argsSchema = def.name === "*" && !def.args ? import_zod.z.any() : def.args;
|
|
31
|
-
return {
|
|
32
|
-
name: def.name,
|
|
33
|
-
args: argsSchema,
|
|
34
|
-
render: def.render,
|
|
35
|
-
...def.agentId ? { agentId: def.agentId } : {}
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// src/components/WildcardToolCallRender.tsx
|
|
40
|
-
var import_react = require("react");
|
|
41
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
42
|
-
var WildcardToolCallRender = defineToolCallRenderer({
|
|
43
|
-
name: "*",
|
|
44
|
-
render: ({ args, result, name, status }) => {
|
|
45
|
-
const [isExpanded, setIsExpanded] = (0, import_react.useState)(false);
|
|
46
|
-
const statusString = String(status);
|
|
47
|
-
const isActive = statusString === "inProgress" || statusString === "executing";
|
|
48
|
-
const isComplete = statusString === "complete";
|
|
49
|
-
const statusStyles = isActive ? "bg-amber-100 text-amber-800 dark:bg-amber-500/15 dark:text-amber-400" : isComplete ? "bg-emerald-100 text-emerald-800 dark:bg-emerald-500/15 dark:text-emerald-400" : "bg-zinc-100 text-zinc-800 dark:bg-zinc-700/40 dark:text-zinc-300";
|
|
50
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-2 pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "rounded-xl border border-zinc-200/60 dark:border-zinc-800/60 bg-white/70 dark:bg-zinc-900/50 shadow-sm backdrop-blur p-4", children: [
|
|
51
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
52
|
-
"div",
|
|
53
|
-
{
|
|
54
|
-
className: "flex items-center justify-between gap-3 cursor-pointer",
|
|
55
|
-
onClick: () => setIsExpanded(!isExpanded),
|
|
56
|
-
children: [
|
|
57
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
58
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
59
|
-
"svg",
|
|
60
|
-
{
|
|
61
|
-
className: `h-4 w-4 text-zinc-500 dark:text-zinc-400 transition-transform ${isExpanded ? "rotate-90" : ""}`,
|
|
62
|
-
fill: "none",
|
|
63
|
-
viewBox: "0 0 24 24",
|
|
64
|
-
strokeWidth: 2,
|
|
65
|
-
stroke: "currentColor",
|
|
66
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
67
|
-
"path",
|
|
68
|
-
{
|
|
69
|
-
strokeLinecap: "round",
|
|
70
|
-
strokeLinejoin: "round",
|
|
71
|
-
d: "M8.25 4.5l7.5 7.5-7.5 7.5"
|
|
72
|
-
}
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
),
|
|
76
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "inline-block h-2 w-2 rounded-full bg-blue-500" }),
|
|
77
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "truncate text-sm font-medium text-zinc-900 dark:text-zinc-100", children: name })
|
|
78
|
-
] }),
|
|
79
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
80
|
-
"span",
|
|
81
|
-
{
|
|
82
|
-
className: `inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ${statusStyles}`,
|
|
83
|
-
children: String(status)
|
|
84
|
-
}
|
|
85
|
-
)
|
|
86
|
-
]
|
|
87
|
-
}
|
|
88
|
-
),
|
|
89
|
-
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-3 grid gap-4", children: [
|
|
90
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
|
|
91
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-xs uppercase tracking-wide text-zinc-500 dark:text-zinc-400", children: "Arguments" }),
|
|
92
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", { className: "mt-2 max-h-64 overflow-auto rounded-md bg-zinc-50 dark:bg-zinc-800/60 p-3 text-xs leading-relaxed text-zinc-800 dark:text-zinc-200 whitespace-pre-wrap break-words", children: JSON.stringify(args ?? {}, null, 2) })
|
|
93
|
-
] }),
|
|
94
|
-
result !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
|
|
95
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-xs uppercase tracking-wide text-zinc-500 dark:text-zinc-400", children: "Result" }),
|
|
96
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", { className: "mt-2 max-h-64 overflow-auto rounded-md bg-zinc-50 dark:bg-zinc-800/60 p-3 text-xs leading-relaxed text-zinc-800 dark:text-zinc-200 whitespace-pre-wrap break-words", children: typeof result === "string" ? result : JSON.stringify(result, null, 2) })
|
|
97
|
-
] })
|
|
98
|
-
] })
|
|
99
|
-
] }) });
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
103
|
-
0 && (module.exports = {
|
|
104
|
-
WildcardToolCallRender
|
|
105
|
-
});
|
|
106
|
-
//# sourceMappingURL=WildcardToolCallRender.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/WildcardToolCallRender.tsx","../../src/types/defineToolCallRenderer.ts"],"sourcesContent":["import { defineToolCallRenderer } from \"../types/defineToolCallRenderer\";\nimport { useState } from \"react\";\n\nexport const WildcardToolCallRender = defineToolCallRenderer({\n name: \"*\",\n render: ({ args, result, name, status }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n\n const statusString = String(status) as\n | \"inProgress\"\n | \"executing\"\n | \"complete\";\n const isActive =\n statusString === \"inProgress\" || statusString === \"executing\";\n const isComplete = statusString === \"complete\";\n const statusStyles = isActive\n ? \"bg-amber-100 text-amber-800 dark:bg-amber-500/15 dark:text-amber-400\"\n : isComplete\n ? \"bg-emerald-100 text-emerald-800 dark:bg-emerald-500/15 dark:text-emerald-400\"\n : \"bg-zinc-100 text-zinc-800 dark:bg-zinc-700/40 dark:text-zinc-300\";\n\n return (\n <div className=\"mt-2 pb-2\">\n <div className=\"rounded-xl border border-zinc-200/60 dark:border-zinc-800/60 bg-white/70 dark:bg-zinc-900/50 shadow-sm backdrop-blur p-4\">\n <div\n className=\"flex items-center justify-between gap-3 cursor-pointer\"\n onClick={() => setIsExpanded(!isExpanded)}\n >\n <div className=\"flex items-center gap-2 min-w-0\">\n <svg\n className={`h-4 w-4 text-zinc-500 dark:text-zinc-400 transition-transform ${\n isExpanded ? \"rotate-90\" : \"\"\n }`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M8.25 4.5l7.5 7.5-7.5 7.5\"\n />\n </svg>\n <span className=\"inline-block h-2 w-2 rounded-full bg-blue-500\" />\n <span className=\"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100\">\n {name}\n </span>\n </div>\n <span\n className={`inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ${statusStyles}`}\n >\n {String(status)}\n </span>\n </div>\n\n {isExpanded && (\n <div className=\"mt-3 grid gap-4\">\n <div>\n <div className=\"text-xs uppercase tracking-wide text-zinc-500 dark:text-zinc-400\">\n Arguments\n </div>\n <pre className=\"mt-2 max-h-64 overflow-auto rounded-md bg-zinc-50 dark:bg-zinc-800/60 p-3 text-xs leading-relaxed text-zinc-800 dark:text-zinc-200 whitespace-pre-wrap break-words\">\n {JSON.stringify(args ?? {}, null, 2)}\n </pre>\n </div>\n\n {result !== undefined && (\n <div>\n <div className=\"text-xs uppercase tracking-wide text-zinc-500 dark:text-zinc-400\">\n Result\n </div>\n <pre className=\"mt-2 max-h-64 overflow-auto rounded-md bg-zinc-50 dark:bg-zinc-800/60 p-3 text-xs leading-relaxed text-zinc-800 dark:text-zinc-200 whitespace-pre-wrap break-words\">\n {typeof result === \"string\"\n ? result\n : JSON.stringify(result, null, 2)}\n </pre>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n },\n});\n","import React from \"react\";\nimport { z } from \"zod\";\nimport { ReactToolCallRenderer } from \"./react-tool-call-renderer\";\nimport { ToolCallStatus } from \"@copilotkitnext/core\";\n\n/**\n * Helper to define a type-safe tool call renderer entry.\n * - Accepts a single object whose keys match ReactToolCallRenderer's fields: { name, args, render, agentId? }.\n * - Derives `args` type from the provided Zod schema.\n * - Ensures the render function param type exactly matches ReactToolCallRenderer<T>[\"render\"]'s param.\n * - For wildcard tools (name: \"*\"), args is optional and defaults to z.any()\n */\ntype RenderProps<T> =\n | {\n name: string;\n args: Partial<T>;\n status: ToolCallStatus.InProgress;\n result: undefined;\n }\n | {\n name: string;\n args: T;\n status: ToolCallStatus.Executing;\n result: undefined;\n }\n | {\n name: string;\n args: T;\n status: ToolCallStatus.Complete;\n result: string;\n };\n\n// Overload for wildcard tools without args\nexport function defineToolCallRenderer(def: {\n name: \"*\";\n render: (props: RenderProps<any>) => React.ReactElement;\n agentId?: string;\n}): ReactToolCallRenderer<any>;\n\n// Overload for regular tools with args\nexport function defineToolCallRenderer<S extends z.ZodTypeAny>(def: {\n name: string;\n args: S;\n render: (props: RenderProps<z.infer<S>>) => React.ReactElement;\n agentId?: string;\n}): ReactToolCallRenderer<z.infer<S>>;\n\n// Implementation\nexport function defineToolCallRenderer<S extends z.ZodTypeAny>(def: {\n name: string;\n args?: S;\n render: (props: any) => React.ReactElement;\n agentId?: string;\n}): ReactToolCallRenderer<any> {\n // For wildcard tools, default to z.any() if no args provided\n const argsSchema = def.name === \"*\" && !def.args ? z.any() : def.args;\n\n return {\n name: def.name,\n args: argsSchema as any,\n render: def.render as React.ComponentType<any>,\n ...(def.agentId ? { agentId: def.agentId } : {}),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,iBAAkB;AA+CX,SAAS,uBAA+C,KAKhC;AAE7B,QAAM,aAAa,IAAI,SAAS,OAAO,CAAC,IAAI,OAAO,aAAE,IAAI,IAAI,IAAI;AAEjE,SAAO;AAAA,IACL,MAAM,IAAI;AAAA,IACV,MAAM;AAAA,IACN,QAAQ,IAAI;AAAA,IACZ,GAAI,IAAI,UAAU,EAAE,SAAS,IAAI,QAAQ,IAAI,CAAC;AAAA,EAChD;AACF;;;AD9DA,mBAAyB;AA2Bb;AAzBL,IAAM,yBAAyB,uBAAuB;AAAA,EAC3D,MAAM;AAAA,EACN,QAAQ,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,MAAM;AAC1C,UAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAElD,UAAM,eAAe,OAAO,MAAM;AAIlC,UAAM,WACJ,iBAAiB,gBAAgB,iBAAiB;AACpD,UAAM,aAAa,iBAAiB;AACpC,UAAM,eAAe,WACjB,yEACA,aACE,iFACA;AAEN,WACE,4CAAC,SAAI,WAAU,aACb,uDAAC,SAAI,WAAU,4HACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,SAAS,MAAM,cAAc,CAAC,UAAU;AAAA,UAExC;AAAA,yDAAC,SAAI,WAAU,mCACb;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,WAAW,iEACT,aAAa,cAAc,EAC7B;AAAA,kBACA,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,aAAa;AAAA,kBACb,QAAO;AAAA,kBAEP;AAAA,oBAAC;AAAA;AAAA,sBACC,eAAc;AAAA,sBACd,gBAAe;AAAA,sBACf,GAAE;AAAA;AAAA,kBACJ;AAAA;AAAA,cACF;AAAA,cACA,4CAAC,UAAK,WAAU,iDAAgD;AAAA,cAChE,4CAAC,UAAK,WAAU,iEACb,gBACH;AAAA,eACF;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,uEAAuE,YAAY;AAAA,gBAE7F,iBAAO,MAAM;AAAA;AAAA,YAChB;AAAA;AAAA;AAAA,MACF;AAAA,MAEC,cACC,6CAAC,SAAI,WAAU,mBACb;AAAA,qDAAC,SACC;AAAA,sDAAC,SAAI,WAAU,oEAAmE,uBAElF;AAAA,UACA,4CAAC,SAAI,WAAU,sKACZ,eAAK,UAAU,QAAQ,CAAC,GAAG,MAAM,CAAC,GACrC;AAAA,WACF;AAAA,QAEC,WAAW,UACV,6CAAC,SACC;AAAA,sDAAC,SAAI,WAAU,oEAAmE,oBAElF;AAAA,UACA,4CAAC,SAAI,WAAU,sKACZ,iBAAO,WAAW,WACf,SACA,KAAK,UAAU,QAAQ,MAAM,CAAC,GACpC;AAAA,WACF;AAAA,SAEJ;AAAA,OAEJ,GACF;AAAA,EAEJ;AACF,CAAC;","names":[]}
|