@copilotkit/vue 2.0.0-rc.3 → 2.0.0-rc.31
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/CONTRIBUTOR_GUIDE.md +1 -1
- package/PARITY.md +3 -3
- package/dist/hooks/use-copilot-action.d.ts.map +1 -1
- package/dist/hooks/use-frontend-tool.d.ts +1 -1
- package/dist/hooks/use-frontend-tool.d.ts.map +1 -1
- package/dist/hooks/zod-parameters.d.ts +14 -0
- package/dist/hooks/zod-parameters.d.ts.map +1 -0
- package/dist/index.cjs +1 -73
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +365 -16920
- package/dist/index.mjs.map +1 -1
- package/dist/use-render-activity-message-BMTHA_P2.js +15901 -0
- package/dist/use-render-activity-message-BMTHA_P2.js.map +1 -0
- package/dist/use-render-activity-message-CH3beu7z.cjs +113 -0
- package/dist/use-render-activity-message-CH3beu7z.cjs.map +1 -0
- package/dist/v2/components/A2UIMessageRenderer.d.ts +14 -0
- package/dist/v2/components/A2UIMessageRenderer.d.ts.map +1 -1
- package/dist/v2/components/A2UISurfaceActivityRenderer.vue.d.ts +10 -3
- package/dist/v2/components/A2UISurfaceActivityRenderer.vue.d.ts.map +1 -1
- package/dist/v2/components/CopilotKitInspector.vue.d.ts +5 -1
- package/dist/v2/components/CopilotKitInspector.vue.d.ts.map +1 -1
- package/dist/v2/components/InlineFeatureWarning.vue.d.ts.map +1 -1
- package/dist/v2/components/LicenseWarningBanner.vue.d.ts +2 -2
- package/dist/v2/components/LicenseWarningBanner.vue.d.ts.map +1 -1
- package/dist/v2/components/MCPAppsActivityRenderer.d.ts.map +1 -1
- package/dist/v2/components/OpenGenerativeUIRenderer.d.ts +13 -59
- package/dist/v2/components/OpenGenerativeUIRenderer.d.ts.map +1 -1
- package/dist/v2/components/a2ui/A2UIBuiltInToolCallRenderer.d.ts +3 -11
- package/dist/v2/components/a2ui/A2UIBuiltInToolCallRenderer.d.ts.map +1 -1
- package/dist/v2/components/a2ui/A2UICatalogContext.d.ts +10 -15
- package/dist/v2/components/a2ui/A2UICatalogContext.d.ts.map +1 -1
- package/dist/v2/components/a2ui/A2UIRecoveryStates.d.ts +14 -130
- package/dist/v2/components/a2ui/A2UIRecoveryStates.d.ts.map +1 -1
- package/dist/v2/components/a2ui/catalog.d.ts.map +1 -1
- package/dist/v2/components/a2ui/utils.d.ts +3 -15
- package/dist/v2/components/a2ui/utils.d.ts.map +1 -1
- package/dist/v2/components/a2ui.d.ts +9 -8
- package/dist/v2/components/a2ui.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChat.vue.d.ts +2 -2
- package/dist/v2/components/chat/CopilotChat.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatAssistantMessage.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatAttachmentQueue.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatAttachmentRenderer.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatAudioRecorder.vue.d.ts +4 -8
- package/dist/v2/components/chat/CopilotChatAudioRecorder.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatFeedbackCommentPopover.vue.d.ts +1 -1
- package/dist/v2/components/chat/CopilotChatFeedbackCommentPopover.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatInput.vue.d.ts +7 -286
- package/dist/v2/components/chat/CopilotChatInput.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatInspectorButton.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatLightbox.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatMessageView.vue.d.ts +1 -1
- package/dist/v2/components/chat/CopilotChatMessageView.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatReasoningMessage.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatToolCallGroup.vue.d.ts +1 -1
- package/dist/v2/components/chat/CopilotChatToolCallGroup.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatToolCallItem.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatToolCallsView.vue.d.ts +1 -1
- package/dist/v2/components/chat/CopilotChatToolCallsView.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatUserMessage.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatView.vue.d.ts +3 -3
- package/dist/v2/components/chat/CopilotChatView.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotChatWorkSummary.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotModalHeader.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotPopup.vue.d.ts +8 -3
- package/dist/v2/components/chat/CopilotPopup.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotPopupView.vue.d.ts +5 -3
- package/dist/v2/components/chat/CopilotPopupView.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotPopupViewInternal.vue.d.ts +5 -3
- package/dist/v2/components/chat/CopilotPopupViewInternal.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotSidebar.vue.d.ts +8 -3
- package/dist/v2/components/chat/CopilotSidebar.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotSidebarView.vue.d.ts +6 -4
- package/dist/v2/components/chat/CopilotSidebarView.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotSidebarViewInternal.vue.d.ts +6 -4
- package/dist/v2/components/chat/CopilotSidebarViewInternal.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/CopilotThreadsDrawer.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/StreamingMarkdownDefault.vue.d.ts +1 -0
- package/dist/v2/components/chat/StreamingMarkdownDefault.vue.d.ts.map +1 -1
- package/dist/v2/components/chat/audioRecorder.d.ts +3 -4
- package/dist/v2/components/chat/audioRecorder.d.ts.map +1 -1
- package/dist/v2/components/chat/copilotChatToolCallItemRender.d.ts +4 -4
- package/dist/v2/components/chat/copilotChatToolCallItemRender.d.ts.map +1 -1
- package/dist/v2/components/chat/forwarded-slots.d.ts +12 -0
- package/dist/v2/components/chat/forwarded-slots.d.ts.map +1 -0
- package/dist/v2/components/chat/index.d.ts +34 -31
- package/dist/v2/components/chat/index.d.ts.map +1 -1
- package/dist/v2/components/chat/inspector-shortcuts.d.ts +2 -1
- package/dist/v2/components/chat/inspector-shortcuts.d.ts.map +1 -1
- package/dist/v2/components/chat/message-feedback.d.ts +38 -49
- package/dist/v2/components/chat/message-feedback.d.ts.map +1 -1
- package/dist/v2/components/chat/tool-call-display-context.d.ts +4 -19
- package/dist/v2/components/chat/tool-call-display-context.d.ts.map +1 -1
- package/dist/v2/components/chat/tool-call-group-parts.d.ts +7 -20
- package/dist/v2/components/chat/tool-call-group-parts.d.ts.map +1 -1
- package/dist/v2/components/chat/turn-work.d.ts +0 -2
- package/dist/v2/components/chat/turn-work.d.ts.map +1 -1
- package/dist/v2/components/chat/types.d.ts +9 -4
- package/dist/v2/components/chat/types.d.ts.map +1 -1
- package/dist/v2/components/chat/use-chat-labels.d.ts +8 -0
- package/dist/v2/components/chat/use-chat-labels.d.ts.map +1 -0
- package/dist/v2/components/chat/use-copy-feedback.d.ts +11 -0
- package/dist/v2/components/chat/use-copy-feedback.d.ts.map +1 -0
- package/dist/v2/components/chat/use-lightbox.d.ts.map +1 -1
- package/dist/v2/components/icons/index.d.ts +968 -1
- package/dist/v2/components/icons/index.d.ts.map +1 -1
- package/dist/v2/components/ui/CopilotDropdownMenuContent.vue.d.ts +1 -1
- package/dist/v2/components/ui/CopilotDropdownMenuContent.vue.d.ts.map +1 -1
- package/dist/v2/hooks/use-agent-context.d.ts +2 -3
- package/dist/v2/hooks/use-agent-context.d.ts.map +1 -1
- package/dist/v2/hooks/use-agent.d.ts +4 -1
- package/dist/v2/hooks/use-agent.d.ts.map +1 -1
- package/dist/v2/hooks/use-attachments.d.ts +7 -0
- package/dist/v2/hooks/use-attachments.d.ts.map +1 -1
- package/dist/v2/hooks/use-capabilities.d.ts.map +1 -1
- package/dist/v2/hooks/use-component.d.ts +1 -0
- package/dist/v2/hooks/use-component.d.ts.map +1 -1
- package/dist/v2/hooks/use-configure-suggestions.d.ts +4 -9
- package/dist/v2/hooks/use-configure-suggestions.d.ts.map +1 -1
- package/dist/v2/hooks/use-default-render-tool.d.ts +2 -7
- package/dist/v2/hooks/use-default-render-tool.d.ts.map +1 -1
- package/dist/v2/hooks/use-frontend-tool.d.ts +5 -0
- package/dist/v2/hooks/use-frontend-tool.d.ts.map +1 -1
- package/dist/v2/hooks/use-human-in-the-loop.d.ts +2 -1
- package/dist/v2/hooks/use-human-in-the-loop.d.ts.map +1 -1
- package/dist/v2/hooks/use-interrupt.d.ts +0 -1
- package/dist/v2/hooks/use-interrupt.d.ts.map +1 -1
- package/dist/v2/hooks/use-keyboard-height.d.ts +1 -1
- package/dist/v2/hooks/use-keyboard-height.d.ts.map +1 -1
- package/dist/v2/hooks/use-pin-to-send.d.ts +4 -12
- package/dist/v2/hooks/use-pin-to-send.d.ts.map +1 -1
- package/dist/v2/hooks/use-render-activity-message.d.ts +13 -9
- package/dist/v2/hooks/use-render-activity-message.d.ts.map +1 -1
- package/dist/v2/hooks/use-render-custom-messages.d.ts +5 -7
- package/dist/v2/hooks/use-render-custom-messages.d.ts.map +1 -1
- package/dist/v2/hooks/use-render-tool.d.ts +1 -1
- package/dist/v2/hooks/use-render-tool.d.ts.map +1 -1
- package/dist/v2/hooks/use-suggestions.d.ts.map +1 -1
- package/dist/v2/hooks/use-threads.d.ts +6 -23
- package/dist/v2/hooks/use-threads.d.ts.map +1 -1
- package/dist/v2/index.cjs +1 -1
- package/dist/v2/index.mjs +197 -200
- package/dist/v2/index.mjs.map +1 -1
- package/dist/v2/lib/processPartialHtml.d.ts +1 -2
- package/dist/v2/lib/processPartialHtml.d.ts.map +1 -1
- package/dist/v2/lib/shallow-stable.d.ts.map +1 -1
- package/dist/v2/lib/vue-core.d.ts +33 -19
- package/dist/v2/lib/vue-core.d.ts.map +1 -1
- package/dist/v2/providers/CopilotChatConfigurationProvider.vue.d.ts.map +1 -1
- package/dist/v2/providers/CopilotKitProvider.types.d.ts +9 -129
- package/dist/v2/providers/CopilotKitProvider.types.d.ts.map +1 -1
- package/dist/v2/providers/CopilotKitProvider.vue.d.ts +9 -10
- package/dist/v2/providers/CopilotKitProvider.vue.d.ts.map +1 -1
- package/dist/v2/providers/chat-configuration-store-key.d.ts +8 -0
- package/dist/v2/providers/chat-configuration-store-key.d.ts.map +1 -0
- package/dist/v2/providers/markdown-renderer.d.ts +4 -2
- package/dist/v2/providers/markdown-renderer.d.ts.map +1 -1
- package/dist/v2/providers/types.d.ts +3 -46
- package/dist/v2/providers/types.d.ts.map +1 -1
- package/dist/v2/providers/use-inspector-thread-override.d.ts +5 -0
- package/dist/v2/providers/use-inspector-thread-override.d.ts.map +1 -1
- package/dist/v2/types/defineToolCallRenderer.d.ts +1 -1
- package/dist/v2/types/defineToolCallRenderer.d.ts.map +1 -1
- package/dist/v2/types/human-in-the-loop.d.ts +8 -29
- package/dist/v2/types/human-in-the-loop.d.ts.map +1 -1
- package/dist/v2/types/interrupt.d.ts +1 -22
- package/dist/v2/types/interrupt.d.ts.map +1 -1
- package/dist/v2/types/vue-activity-message-renderer.d.ts +16 -15
- package/dist/v2/types/vue-activity-message-renderer.d.ts.map +1 -1
- package/dist/v2/types/vue-custom-message-renderer.d.ts +7 -16
- package/dist/v2/types/vue-custom-message-renderer.d.ts.map +1 -1
- package/dist/v2/types/vue-tool-call-renderer.d.ts +16 -35
- package/dist/v2/types/vue-tool-call-renderer.d.ts.map +1 -1
- package/package.json +12 -13
- package/src/__tests__/build-entries.test.ts +29 -0
- package/src/hooks/__tests__/zod-parameters.test.ts +520 -0
- package/src/hooks/use-copilot-action.ts +2 -1
- package/src/hooks/use-frontend-tool.ts +3 -6
- package/src/hooks/zod-parameters.ts +162 -0
- package/src/v2/__tests__/exports.test.ts +10 -0
- package/src/v2/__tests__/mocks/web-inspector.ts +6 -0
- package/src/v2/__tests__/utils/test-helpers.ts +34 -4
- package/src/v2/components/A2UIMessageRenderer.ts +98 -68
- package/src/v2/components/A2UISurfaceActivityRenderer.vue +68 -103
- package/src/v2/components/CopilotKitInspector.vue +104 -51
- package/src/v2/components/InlineFeatureWarning.vue +20 -21
- package/src/v2/components/LicenseWarningBanner.vue +27 -135
- package/src/v2/components/MCPAppsActivityRenderer.ts +75 -201
- package/src/v2/components/OpenGenerativeUIRenderer.ts +122 -446
- package/src/v2/components/__tests__/A2UIMessageRenderer.test.ts +171 -8
- package/src/v2/components/__tests__/CopilotKitInspector.test.ts +42 -0
- package/src/v2/components/__tests__/LicenseWarningBanner.test.ts +60 -0
- package/src/v2/components/__tests__/OpenGenerativeUIRenderer.test.ts +64 -8
- package/src/v2/components/__tests__/OpenGenerativeUIToolRenderer.test.ts +38 -0
- package/src/v2/components/a2ui/A2UIBuiltInToolCallRenderer.ts +6 -26
- package/src/v2/components/a2ui/A2UICatalogContext.ts +27 -185
- package/src/v2/components/a2ui/A2UIRecoveryStates.ts +127 -327
- package/src/v2/components/a2ui/catalog.ts +3 -3
- package/src/v2/components/a2ui/utils.ts +13 -65
- package/src/v2/components/a2ui.ts +15 -22
- package/src/v2/components/chat/CopilotChat.vue +121 -498
- package/src/v2/components/chat/CopilotChatAssistantMessage.vue +47 -184
- package/src/v2/components/chat/CopilotChatAttachmentQueue.vue +36 -55
- package/src/v2/components/chat/CopilotChatAttachmentRenderer.vue +14 -6
- package/src/v2/components/chat/CopilotChatAudioRecorder.vue +19 -246
- package/src/v2/components/chat/CopilotChatFeedbackCommentPopover.vue +12 -77
- package/src/v2/components/chat/CopilotChatInput.vue +139 -654
- package/src/v2/components/chat/CopilotChatInspectorButton.vue +45 -108
- package/src/v2/components/chat/CopilotChatLightbox.vue +10 -31
- package/src/v2/components/chat/CopilotChatMessageView.vue +96 -274
- package/src/v2/components/chat/CopilotChatReasoningMessage.vue +27 -62
- package/src/v2/components/chat/CopilotChatToolCallGroup.vue +63 -71
- package/src/v2/components/chat/CopilotChatToolCallItem.vue +8 -6
- package/src/v2/components/chat/CopilotChatToolCallsView.vue +31 -32
- package/src/v2/components/chat/CopilotChatUserMessage.vue +24 -112
- package/src/v2/components/chat/CopilotChatView.vue +123 -161
- package/src/v2/components/chat/CopilotChatWorkSummary.vue +26 -36
- package/src/v2/components/chat/CopilotModalHeader.vue +11 -23
- package/src/v2/components/chat/CopilotPopup.vue +23 -25
- package/src/v2/components/chat/CopilotPopupView.vue +10 -39
- package/src/v2/components/chat/CopilotPopupViewInternal.vue +49 -185
- package/src/v2/components/chat/CopilotSidebar.vue +23 -25
- package/src/v2/components/chat/CopilotSidebarView.vue +10 -39
- package/src/v2/components/chat/CopilotSidebarViewInternal.vue +56 -100
- package/src/v2/components/chat/CopilotThreadsDrawer.vue +43 -105
- package/src/v2/components/chat/StreamingMarkdownDefault.vue +15 -28
- package/src/v2/components/chat/__tests__/CopilotChat.labels.test.ts +19 -4
- package/src/v2/components/chat/__tests__/CopilotChat.test.ts +12 -10
- package/src/v2/components/chat/__tests__/CopilotChatActivityRendering.e2e.test.ts +26 -9
- package/src/v2/components/chat/__tests__/CopilotChatAssistantMessage.learningFeedback.test.ts +5 -5
- package/src/v2/components/chat/__tests__/CopilotChatAttachmentQueue.test.ts +28 -0
- package/src/v2/components/chat/__tests__/CopilotChatInput.test.ts +132 -1
- package/src/v2/components/chat/__tests__/CopilotChatMessageView.test.ts +247 -403
- package/src/v2/components/chat/__tests__/CopilotChatMessageView.toolCallDisplay.test.ts +1 -99
- package/src/v2/components/chat/__tests__/CopilotChatView.pinToSend.test.ts +43 -1
- package/src/v2/components/chat/__tests__/CopilotPopup.test.ts +90 -1
- package/src/v2/components/chat/__tests__/CopilotPopupView.test.ts +19 -0
- package/src/v2/components/chat/__tests__/CopilotSidebar.test.ts +90 -1
- package/src/v2/components/chat/__tests__/CopilotSidebarView.position.test.ts +32 -8
- package/src/v2/components/chat/__tests__/CopilotSidebarView.test.ts +2 -1
- package/src/v2/components/chat/__tests__/StreamingMarkdownDefault.test.ts +54 -0
- package/src/v2/components/chat/audioRecorder.ts +4 -7
- package/src/v2/components/chat/copilotChatToolCallItemRender.ts +25 -90
- package/src/v2/components/chat/forwarded-slots.ts +17 -0
- package/src/v2/components/chat/index.ts +0 -1
- package/src/v2/components/chat/inspector-shortcuts.ts +10 -16
- package/src/v2/components/chat/message-feedback.ts +92 -195
- package/src/v2/components/chat/tool-call-display-context.ts +6 -22
- package/src/v2/components/chat/tool-call-group-parts.ts +47 -108
- package/src/v2/components/chat/turn-work.ts +0 -9
- package/src/v2/components/chat/types.ts +12 -4
- package/src/v2/components/chat/use-chat-labels.ts +16 -0
- package/src/v2/components/chat/use-copy-feedback.ts +21 -0
- package/src/v2/components/chat/use-lightbox.ts +15 -33
- package/src/v2/components/icons/__tests__/icons.test.ts +72 -68
- package/src/v2/components/icons/index.ts +109 -27
- package/src/v2/hooks/__tests__/use-agent-error-state.test.ts +5 -3
- package/src/v2/hooks/__tests__/use-agent-stability.test.ts +25 -4
- package/src/v2/hooks/__tests__/use-agent-throttle.test.ts +5 -1
- package/src/v2/hooks/__tests__/use-agent.test.ts +6 -3
- package/src/v2/hooks/__tests__/use-component.test.ts +21 -0
- package/src/v2/hooks/__tests__/use-configure-suggestions.test.ts +30 -1
- package/src/v2/hooks/__tests__/use-default-render-tool.test.ts +10 -10
- package/src/v2/hooks/__tests__/use-frontend-tool.e2e.test.ts +66 -1
- package/src/v2/hooks/__tests__/use-human-in-the-loop.e2e.test.ts +6 -1
- package/src/v2/hooks/__tests__/use-human-in-the-loop.test.ts +187 -12
- package/src/v2/hooks/__tests__/use-interrupt.test.ts +97 -0
- package/src/v2/hooks/__tests__/use-render-activity-message.test.ts +106 -0
- package/src/v2/hooks/__tests__/use-render-tool.test.ts +3 -6
- package/src/v2/hooks/__tests__/use-threads.test.ts +48 -6
- package/src/v2/hooks/__tests__/zod-regression.test.ts +5 -4
- package/src/v2/hooks/use-agent-context.ts +4 -10
- package/src/v2/hooks/use-agent.ts +86 -290
- package/src/v2/hooks/use-attachments.ts +48 -168
- package/src/v2/hooks/use-capabilities.ts +2 -7
- package/src/v2/hooks/use-component.ts +7 -4
- package/src/v2/hooks/use-configure-suggestions.ts +29 -220
- package/src/v2/hooks/use-default-render-tool.ts +31 -152
- package/src/v2/hooks/use-frontend-tool.ts +15 -25
- package/src/v2/hooks/use-human-in-the-loop.ts +11 -80
- package/src/v2/hooks/use-interrupt.ts +29 -308
- package/src/v2/hooks/use-keyboard-height.ts +17 -40
- package/src/v2/hooks/use-pin-to-send.ts +15 -99
- package/src/v2/hooks/use-render-activity-message.ts +35 -57
- package/src/v2/hooks/use-render-custom-messages.ts +24 -88
- package/src/v2/hooks/use-render-tool.ts +2 -4
- package/src/v2/hooks/use-suggestions.ts +17 -36
- package/src/v2/hooks/use-threads.ts +49 -288
- package/src/v2/lib/__tests__/shallow-stable.test.ts +54 -0
- package/src/v2/lib/__tests__/vue-core-renderers.test.ts +42 -0
- package/src/v2/lib/processPartialHtml.ts +6 -21
- package/src/v2/lib/shallow-stable.ts +2 -16
- package/src/v2/lib/vue-core.ts +90 -85
- package/src/v2/providers/CopilotChatConfigurationProvider.vue +48 -186
- package/src/v2/providers/CopilotKitProvider.types.ts +12 -132
- package/src/v2/providers/CopilotKitProvider.vue +291 -641
- package/src/v2/providers/__tests__/CopilotChatConfigurationProvider.test.ts +22 -2
- package/src/v2/providers/__tests__/CopilotKitProvider.a2ui.test.ts +38 -2
- package/src/v2/providers/__tests__/CopilotKitProvider.config.test.ts +124 -0
- package/src/v2/providers/__tests__/CopilotKitProvider.headersAtSendTime.test.ts +3 -3
- package/src/v2/providers/__tests__/CopilotKitProvider.learning.test.ts +3 -1
- package/src/v2/providers/__tests__/CopilotKitProvider.sandboxFunctions.test.ts +4 -1
- package/src/v2/providers/__tests__/CopilotKitProvider.test.ts +88 -28
- package/src/v2/providers/chat-configuration-store-key.ts +9 -0
- package/src/v2/providers/markdown-renderer.ts +8 -2
- package/src/v2/providers/types.ts +3 -49
- package/src/v2/providers/use-inspector-thread-override.ts +22 -80
- package/src/v2/types/__tests__/defineToolCallRenderer.test.ts +28 -33
- package/src/v2/types/defineToolCallRenderer.ts +7 -6
- package/src/v2/types/human-in-the-loop.ts +8 -32
- package/src/v2/types/interrupt.ts +7 -31
- package/src/v2/types/vue-activity-message-renderer.ts +24 -15
- package/src/v2/types/vue-custom-message-renderer.ts +12 -16
- package/src/v2/types/vue-tool-call-renderer.ts +23 -38
- package/tsconfig.json +0 -1
- package/vite.config.ts +8 -5
- package/vitest.config.ts +12 -7
- package/dist/v2/components/chat/BasicMarkdown.vue.d.ts +0 -9
- package/dist/v2/components/chat/BasicMarkdown.vue.d.ts.map +0 -1
- package/dist/v2/components/chat/normalize-auto-scroll.d.ts +0 -3
- package/dist/v2/components/chat/normalize-auto-scroll.d.ts.map +0 -1
- package/dist/v2/components/chat/tool-call-layout.d.ts +0 -115
- package/dist/v2/components/chat/tool-call-layout.d.ts.map +0 -1
- package/dist/v2/lib/is-mobile-viewport.d.ts +0 -15
- package/dist/v2/lib/is-mobile-viewport.d.ts.map +0 -1
- package/dist/v2/lib/message-feedback.d.ts +0 -33
- package/dist/v2/lib/message-feedback.d.ts.map +0 -1
- package/dist/v2/lib/transcription-client.d.ts +0 -19
- package/dist/v2/lib/transcription-client.d.ts.map +0 -1
- package/src/v2/components/__tests__/A2UICatalogContext.test.ts +0 -63
- package/src/v2/components/a2ui/__tests__/A2UIRecoveryStates.test.ts +0 -175
- package/src/v2/components/chat/BasicMarkdown.vue +0 -160
- package/src/v2/components/chat/__tests__/BasicMarkdown.test.ts +0 -69
- package/src/v2/components/chat/__tests__/normalize-auto-scroll.test.ts +0 -39
- package/src/v2/components/chat/normalize-auto-scroll.ts +0 -17
- package/src/v2/components/chat/tool-call-layout.ts +0 -304
- package/src/v2/lib/__tests__/is-mobile-viewport.test.ts +0 -48
- package/src/v2/lib/__tests__/message-feedback.test.ts +0 -152
- package/src/v2/lib/__tests__/processPartialHtml.test.ts +0 -84
- package/src/v2/lib/__tests__/transcription-client.test.ts +0 -67
- package/src/v2/lib/is-mobile-viewport.ts +0 -23
- package/src/v2/lib/message-feedback.ts +0 -120
- package/src/v2/lib/transcription-client.ts +0 -151
package/src/v2/components/chat/__tests__/CopilotChatAssistantMessage.learningFeedback.test.ts
CHANGED
|
@@ -10,12 +10,12 @@ import { useCopilotKit } from "../../../providers/useCopilotKit";
|
|
|
10
10
|
import CopilotChatMessageView from "../CopilotChatMessageView.vue";
|
|
11
11
|
import CopilotChatAssistantMessage from "../CopilotChatAssistantMessage.vue";
|
|
12
12
|
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
ɵFEEDBACK_COMMENT_CLOSE_DELAY_MS as FEEDBACK_COMMENT_CLOSE_DELAY_MS,
|
|
14
|
+
ɵMESSAGE_FEEDBACK_EVENT_NAME as MESSAGE_FEEDBACK_EVENT_NAME,
|
|
15
|
+
ɵgetMessageFeedback as getMessageFeedback,
|
|
16
|
+
ɵsetMessageFeedback as setMessageFeedback,
|
|
16
17
|
ɵresetMessageFeedbackCache,
|
|
17
|
-
} from "
|
|
18
|
-
import { FEEDBACK_COMMENT_CLOSE_DELAY_MS } from "../message-feedback";
|
|
18
|
+
} from "@copilotkit/core";
|
|
19
19
|
|
|
20
20
|
const THREAD_ID = "thread-1";
|
|
21
21
|
const AGENT_ID = "agent-1";
|
|
@@ -186,6 +186,34 @@ describe("CopilotChatAttachmentQueue", () => {
|
|
|
186
186
|
).toContain("hello attachment preview");
|
|
187
187
|
});
|
|
188
188
|
|
|
189
|
+
it("decodes a text document as UTF-8", async () => {
|
|
190
|
+
const { getByTestId } = render(CopilotChatAttachmentQueue, {
|
|
191
|
+
props: {
|
|
192
|
+
attachments: [
|
|
193
|
+
createAttachment({
|
|
194
|
+
id: "doc-utf8",
|
|
195
|
+
type: "document",
|
|
196
|
+
status: "ready",
|
|
197
|
+
// "héllo ✓" in UTF-8, base64-encoded.
|
|
198
|
+
source: {
|
|
199
|
+
type: "data",
|
|
200
|
+
value: "aMOpbGxvIOKckw==",
|
|
201
|
+
mimeType: "text/plain",
|
|
202
|
+
},
|
|
203
|
+
}),
|
|
204
|
+
],
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
await fireEvent.click(
|
|
209
|
+
getByTestId("copilot-chat-attachment-document-button"),
|
|
210
|
+
);
|
|
211
|
+
expect(
|
|
212
|
+
screen.getByTestId("copilot-chat-attachment-lightbox-document-text")
|
|
213
|
+
.textContent,
|
|
214
|
+
).toContain("héllo ✓");
|
|
215
|
+
});
|
|
216
|
+
|
|
189
217
|
it("non-previewable document remains inert", async () => {
|
|
190
218
|
const { getByTestId, queryByTestId } = render(CopilotChatAttachmentQueue, {
|
|
191
219
|
props: {
|
|
@@ -128,9 +128,14 @@ beforeEach(() => {
|
|
|
128
128
|
mockOnSubmitMessage.mockClear();
|
|
129
129
|
vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockImplementation(
|
|
130
130
|
() =>
|
|
131
|
+
// A partial 2D context: the input measures text, and the recorder's
|
|
132
|
+
// waveform scales, clears, and fills.
|
|
131
133
|
({
|
|
132
134
|
measureText: (text: string) => ({ width: text.length * 8 }),
|
|
133
135
|
font: "",
|
|
136
|
+
scale: () => {},
|
|
137
|
+
clearRect: () => {},
|
|
138
|
+
fillRect: () => {},
|
|
134
139
|
}) as unknown as CanvasRenderingContext2D,
|
|
135
140
|
);
|
|
136
141
|
});
|
|
@@ -397,6 +402,32 @@ describe("CopilotChatInput", () => {
|
|
|
397
402
|
});
|
|
398
403
|
});
|
|
399
404
|
|
|
405
|
+
it("does not empty the textarea to re-measure it on each keystroke on a phone", async () => {
|
|
406
|
+
vi.stubGlobal("matchMedia", (query: string) => ({
|
|
407
|
+
matches: query === "(max-width: 767px)",
|
|
408
|
+
}));
|
|
409
|
+
const valueSetter = vi.spyOn(HTMLTextAreaElement.prototype, "value", "set");
|
|
410
|
+
try {
|
|
411
|
+
renderWithProvider({
|
|
412
|
+
listeners: { onSubmitMessage: mockOnSubmitMessage },
|
|
413
|
+
});
|
|
414
|
+
const textarea = screen.getByRole("textbox");
|
|
415
|
+
await fireEvent.input(textarea, { target: { value: "ABCD" } });
|
|
416
|
+
const grid = textarea.closest("[data-layout]");
|
|
417
|
+
await waitFor(() => {
|
|
418
|
+
expect(grid?.getAttribute("data-layout")).toBe("expanded");
|
|
419
|
+
});
|
|
420
|
+
|
|
421
|
+
valueSetter.mockClear();
|
|
422
|
+
await fireEvent.input(textarea, { target: { value: "AEBCD" } });
|
|
423
|
+
|
|
424
|
+
expect(valueSetter).not.toHaveBeenCalledWith("");
|
|
425
|
+
} finally {
|
|
426
|
+
valueSetter.mockRestore();
|
|
427
|
+
vi.unstubAllGlobals();
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
|
|
400
431
|
it("executes slash commands via keyboard selection", async () => {
|
|
401
432
|
const handleFirst = vi.fn();
|
|
402
433
|
const handleSecond = vi.fn();
|
|
@@ -477,6 +508,31 @@ describe("CopilotChatInput", () => {
|
|
|
477
508
|
});
|
|
478
509
|
});
|
|
479
510
|
|
|
511
|
+
it("opens the slash menu for typed text once commands arrive", async () => {
|
|
512
|
+
const toolsMenu = ref<{ label: string; action: () => void }[]>([]);
|
|
513
|
+
const Host = defineComponent({
|
|
514
|
+
setup: () => () =>
|
|
515
|
+
h(
|
|
516
|
+
CopilotChatConfigurationProvider,
|
|
517
|
+
{ threadId: TEST_THREAD_ID },
|
|
518
|
+
{
|
|
519
|
+
default: () => h(CopilotChatInput, { toolsMenu: toolsMenu.value }),
|
|
520
|
+
},
|
|
521
|
+
),
|
|
522
|
+
});
|
|
523
|
+
render(Host);
|
|
524
|
+
|
|
525
|
+
await fireEvent.input(screen.getByRole("textbox"), {
|
|
526
|
+
target: { value: "/sum" },
|
|
527
|
+
});
|
|
528
|
+
expect(screen.queryByTestId("copilot-slash-menu")).toBeNull();
|
|
529
|
+
|
|
530
|
+
toolsMenu.value = [{ label: "Summarize", action: vi.fn() }];
|
|
531
|
+
|
|
532
|
+
const menu = await screen.findByTestId("copilot-slash-menu");
|
|
533
|
+
expect(within(menu).getByRole("option").textContent).toContain("Summarize");
|
|
534
|
+
});
|
|
535
|
+
|
|
480
536
|
it("limits slash menu height when commands exceed five items", async () => {
|
|
481
537
|
const tools = Array.from({ length: 6 }, (_, index) => ({
|
|
482
538
|
label: `Command ${index + 1}`,
|
|
@@ -559,6 +615,38 @@ describe("CopilotChatInput", () => {
|
|
|
559
615
|
expect(screen.getByRole("button", { name: "Stop" })).toBe(getSendButton());
|
|
560
616
|
});
|
|
561
617
|
|
|
618
|
+
describe("Enter while the agent runs", () => {
|
|
619
|
+
async function pressEnterWhileRunning(modelValue: string) {
|
|
620
|
+
const onStop = vi.fn();
|
|
621
|
+
renderWithProvider({
|
|
622
|
+
props: { modelValue, isRunning: true },
|
|
623
|
+
listeners: { onSubmitMessage: mockOnSubmitMessage, onStop },
|
|
624
|
+
});
|
|
625
|
+
await fireEvent.keyDown(
|
|
626
|
+
screen.getByPlaceholderText("Type a message..."),
|
|
627
|
+
{
|
|
628
|
+
key: "Enter",
|
|
629
|
+
shiftKey: false,
|
|
630
|
+
},
|
|
631
|
+
);
|
|
632
|
+
return onStop;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
it("sends the typed text and does not stop the run", async () => {
|
|
636
|
+
const onStop = await pressEnterWhileRunning(" next question ");
|
|
637
|
+
|
|
638
|
+
expect(mockOnSubmitMessage).toHaveBeenCalledWith("next question");
|
|
639
|
+
expect(onStop).not.toHaveBeenCalled();
|
|
640
|
+
});
|
|
641
|
+
|
|
642
|
+
it("stops the run when the input is empty", async () => {
|
|
643
|
+
const onStop = await pressEnterWhileRunning("");
|
|
644
|
+
|
|
645
|
+
expect(onStop).toHaveBeenCalledOnce();
|
|
646
|
+
expect(mockOnSubmitMessage).not.toHaveBeenCalled();
|
|
647
|
+
});
|
|
648
|
+
});
|
|
649
|
+
|
|
562
650
|
it("names the send button with the configured labels", () => {
|
|
563
651
|
renderWithProvider({
|
|
564
652
|
template: `
|
|
@@ -799,7 +887,7 @@ describe("CopilotChatInput", () => {
|
|
|
799
887
|
|
|
800
888
|
await fireEvent.click(addButton);
|
|
801
889
|
const menuItem = await screen.findByRole("menuitem", {
|
|
802
|
-
name: "Add
|
|
890
|
+
name: "Add attachments",
|
|
803
891
|
});
|
|
804
892
|
await fireEvent.click(menuItem);
|
|
805
893
|
expect(handleAddFile).toHaveBeenCalledTimes(1);
|
|
@@ -1130,4 +1218,47 @@ describe("CopilotChatInput", () => {
|
|
|
1130
1218
|
expect(input.value).toBe("部分");
|
|
1131
1219
|
});
|
|
1132
1220
|
});
|
|
1221
|
+
|
|
1222
|
+
// `onSubmitMessage` is both a declared prop (to detect a listener) and the
|
|
1223
|
+
// `submit-message` emit. A template `@submit-message` listener must enable
|
|
1224
|
+
// sending and fire once per send.
|
|
1225
|
+
describe("@submit-message listener", () => {
|
|
1226
|
+
function renderWithTemplateListener(onSubmit?: (value: string) => void) {
|
|
1227
|
+
const Host = defineComponent({
|
|
1228
|
+
components: { CopilotChatConfigurationProvider, CopilotChatInput },
|
|
1229
|
+
setup() {
|
|
1230
|
+
return { TEST_THREAD_ID, onSubmit };
|
|
1231
|
+
},
|
|
1232
|
+
template: onSubmit
|
|
1233
|
+
? `
|
|
1234
|
+
<CopilotChatConfigurationProvider :thread-id="TEST_THREAD_ID">
|
|
1235
|
+
<CopilotChatInput model-value="hello" @submit-message="onSubmit" />
|
|
1236
|
+
</CopilotChatConfigurationProvider>
|
|
1237
|
+
`
|
|
1238
|
+
: `
|
|
1239
|
+
<CopilotChatConfigurationProvider :thread-id="TEST_THREAD_ID">
|
|
1240
|
+
<CopilotChatInput model-value="hello" />
|
|
1241
|
+
</CopilotChatConfigurationProvider>
|
|
1242
|
+
`,
|
|
1243
|
+
});
|
|
1244
|
+
return render(Host);
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
it("enables the send button and fires the listener once per send", async () => {
|
|
1248
|
+
const onSubmit = vi.fn();
|
|
1249
|
+
renderWithTemplateListener(onSubmit);
|
|
1250
|
+
|
|
1251
|
+
expect(getSendButton().disabled).toBe(false);
|
|
1252
|
+
await fireEvent.click(getSendButton());
|
|
1253
|
+
|
|
1254
|
+
expect(onSubmit).toHaveBeenCalledTimes(1);
|
|
1255
|
+
expect(onSubmit).toHaveBeenCalledWith("hello");
|
|
1256
|
+
});
|
|
1257
|
+
|
|
1258
|
+
it("keeps the send button disabled without a listener", () => {
|
|
1259
|
+
renderWithTemplateListener();
|
|
1260
|
+
|
|
1261
|
+
expect(getSendButton().disabled).toBe(true);
|
|
1262
|
+
});
|
|
1263
|
+
});
|
|
1133
1264
|
});
|