@opentiny/tiny-robot 0.4.2-alpha.3 → 0.4.2-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/action-group/ActionGroup.vue.d.ts +26 -0
- package/dist/action-group/ActionGroupItem.vue.d.ts +18 -0
- package/dist/action-group/index.d.ts +12 -0
- package/dist/action-group/index.js +3 -3
- package/dist/action-group/index.type.d.ts +17 -0
- package/dist/anchor/components/AnchorItem.vue.d.ts +24 -0
- package/dist/anchor/components/AnchorList.vue.d.ts +20 -0
- package/dist/anchor/components/AnchorOverlay.vue.d.ts +33 -0
- package/dist/anchor/components/AnchorSearch.vue.d.ts +7 -0
- package/dist/anchor/composables/index.d.ts +5 -0
- package/dist/anchor/composables/useActiveSync.d.ts +10 -0
- package/dist/anchor/composables/useFloatingOffset.d.ts +6 -0
- package/dist/anchor/composables/useNavController.d.ts +12 -0
- package/dist/anchor/composables/useOverlayInteractions.d.ts +6 -0
- package/dist/anchor/composables/useTargetFeedback.d.ts +5 -0
- package/dist/anchor/defaults.d.ts +16 -0
- package/dist/anchor/index.d.ts +7 -0
- package/dist/anchor/index.js +44 -44
- package/dist/anchor/index.type.d.ts +60 -0
- package/dist/anchor/index.vue.d.ts +159 -0
- package/dist/anchor/internal.type.d.ts +103 -0
- package/dist/anchor/utils/scroll.d.ts +7 -0
- package/dist/anchor/utils/target.d.ts +6 -0
- package/dist/attachments/components/FileCard.vue.d.ts +18 -0
- package/dist/attachments/components/ImagePreview.vue.d.ts +17 -0
- package/dist/attachments/components/index.d.ts +2 -0
- package/dist/attachments/composables/index.d.ts +5 -0
- package/dist/attachments/composables/useFileCard.d.ts +15 -0
- package/dist/attachments/composables/useFileType.d.ts +20 -0
- package/dist/attachments/composables/useImagePreview.d.ts +18 -0
- package/dist/attachments/composables/useListType.d.ts +11 -0
- package/dist/attachments/index.d.ts +7 -0
- package/dist/attachments/index.js +96 -96
- package/dist/attachments/index.type.d.ts +70 -0
- package/dist/attachments/index.vue.d.ts +27 -0
- package/dist/attachments/utils.d.ts +3 -0
- package/dist/base-popper/components/Popper.vue.d.ts +28 -0
- package/dist/base-popper/index.d.ts +2 -0
- package/dist/base-popper/index.vue.d.ts +41 -0
- package/dist/bubble/Bubble.vue.d.ts +39 -0
- package/dist/bubble/BubbleBoxWrapper.vue.d.ts +22 -0
- package/dist/bubble/BubbleContentWrapper.vue.d.ts +16 -0
- package/dist/bubble/BubbleItem.vue.d.ts +36 -0
- package/dist/bubble/BubbleList.vue.d.ts +41 -0
- package/dist/bubble/BubbleProvider.vue.d.ts +18 -0
- package/dist/bubble/composables/index.d.ts +10 -0
- package/dist/bubble/composables/useBubbleBoxRenderer.d.ts +18 -0
- package/dist/bubble/composables/useBubbleContentRenderer.d.ts +18 -0
- package/dist/bubble/composables/useBubbleStateChange.d.ts +2 -0
- package/dist/bubble/composables/useBubbleStore.d.ts +16 -0
- package/dist/bubble/composables/useContentResolver.d.ts +5 -0
- package/dist/bubble/composables/useCopyCleanup.d.ts +6 -0
- package/dist/bubble/composables/useMessageContent.d.ts +5 -0
- package/dist/bubble/composables/useMessageGroup.d.ts +4 -0
- package/dist/bubble/composables/useOmitMessageFields.d.ts +12 -0
- package/dist/bubble/composables/useToolCall.d.ts +25 -0
- package/dist/bubble/constants.d.ts +42 -0
- package/dist/bubble/index.d.ts +19 -0
- package/dist/bubble/index.type.d.ts +171 -0
- package/dist/bubble/renderers/Box.vue.d.ts +18 -0
- package/dist/bubble/renderers/Image.vue.d.ts +4 -0
- package/dist/bubble/renderers/Loading.vue.d.ts +4 -0
- package/dist/bubble/renderers/Markdown.vue.d.ts +4 -0
- package/dist/bubble/renderers/Reasoning.vue.d.ts +9 -0
- package/dist/bubble/renderers/Text.vue.d.ts +4 -0
- package/dist/bubble/renderers/Tool.vue.d.ts +14 -0
- package/dist/bubble/renderers/ToolRole.vue.d.ts +4 -0
- package/dist/bubble/renderers/Tools.vue.d.ts +4 -0
- package/dist/bubble/renderers/allRenderers.d.ts +93 -0
- package/dist/bubble/renderers/defaultRenderers.d.ts +27 -0
- package/dist/bubble/utils.d.ts +7 -0
- package/dist/chat/components/ChatConversation.vue.d.ts +70 -0
- package/dist/chat/components/ChatLauncherButton.vue.d.ts +12 -0
- package/dist/chat/components/ChatMcpTrigger.vue.d.ts +30 -0
- package/dist/chat/components/ChatThemeToggleButton.vue.d.ts +2 -0
- package/dist/chat/components/ChatWelcome.vue.d.ts +13 -0
- package/dist/chat/composables/useChatConversation.d.ts +37 -0
- package/dist/chat/composables/useChatMcp.d.ts +29 -0
- package/dist/chat/composables/useChatModel.d.ts +27 -0
- package/dist/chat/index.d.ts +9 -0
- package/dist/chat/index.js +13701 -0
- package/dist/chat/index.type.d.ts +88 -0
- package/dist/chat/index.vue.d.ts +58 -0
- package/dist/container/index.d.ts +7 -0
- package/dist/container/index.js +13 -13
- package/dist/container/index.type.d.ts +20 -0
- package/dist/container/index.vue.d.ts +32 -0
- package/dist/conversations/index.d.ts +7 -0
- package/dist/conversations/index.vue.d.ts +2 -0
- package/dist/drag-overlay/constants.d.ts +17 -0
- package/dist/drag-overlay/directives/vDropzone.d.ts +14 -0
- package/dist/drag-overlay/index.d.ts +7 -0
- package/dist/drag-overlay/index.js +1 -1
- package/dist/drag-overlay/index.type.d.ts +105 -0
- package/dist/drag-overlay/index.vue.d.ts +20 -0
- package/dist/dropdown-menu/composables/usePopperHover.d.ts +6 -0
- package/dist/dropdown-menu/index.d.ts +7 -0
- package/dist/dropdown-menu/index.js +18 -18
- package/dist/dropdown-menu/index.type.d.ts +42 -0
- package/dist/dropdown-menu/index.vue.d.ts +217 -0
- package/dist/feedback/components/SourceList.vue.d.ts +11 -0
- package/dist/feedback/components/index.d.ts +1 -0
- package/dist/feedback/index.d.ts +7 -0
- package/dist/feedback/index.type.d.ts +25 -0
- package/dist/feedback/index.vue.d.ts +13 -0
- package/dist/flow-layout-buttons/index.d.ts +7 -0
- package/dist/flow-layout-buttons/index.js +1 -1
- package/dist/flow-layout-buttons/index.type.d.ts +35 -0
- package/dist/flow-layout-buttons/index.vue.d.ts +22 -0
- package/dist/history/components/Empty.vue.d.ts +7 -0
- package/dist/history/components/MenuList.vue.d.ts +24 -0
- package/dist/history/composables/useRenameEditor.d.ts +22 -0
- package/dist/history/constants.d.ts +1 -0
- package/dist/history/index.d.ts +7 -0
- package/dist/history/index.type.d.ts +33 -0
- package/dist/history/index.vue.d.ts +18 -0
- package/dist/icon-button/index.d.ts +7 -0
- package/dist/icon-button/index.type.d.ts +7 -0
- package/dist/icon-button/index.vue.d.ts +6 -0
- package/dist/index.d.ts +49 -4999
- package/dist/index.js +3 -3
- package/dist/index2.js +139 -121
- package/dist/index3.js +1 -1
- package/dist/index4.js +13 -13
- package/dist/index6.js +19 -19
- package/dist/index7.js +30 -30
- package/dist/index8.js +8 -8
- package/dist/mcp-add-form/components/CodeEditor.vue.d.ts +9 -0
- package/dist/mcp-add-form/components/FormEditor.vue.d.ts +10 -0
- package/dist/mcp-add-form/components/index.d.ts +2 -0
- package/dist/mcp-add-form/index.d.ts +7 -0
- package/dist/mcp-add-form/index.type.d.ts +19 -0
- package/dist/mcp-add-form/index.vue.d.ts +13 -0
- package/dist/mcp-server-picker/components/NoData.vue.d.ts +7 -0
- package/dist/mcp-server-picker/components/PluginCard.vue.d.ts +40 -0
- package/dist/mcp-server-picker/components/PluginModal.vue.d.ts +15 -0
- package/dist/mcp-server-picker/components/index.d.ts +3 -0
- package/dist/mcp-server-picker/index.d.ts +7 -0
- package/dist/mcp-server-picker/index.js +178 -177
- package/dist/mcp-server-picker/index.type.d.ts +99 -0
- package/dist/mcp-server-picker/index.vue.d.ts +71 -0
- package/dist/prompts/index.d.ts +12 -0
- package/dist/prompts/index.type.d.ts +59 -0
- package/dist/prompts/prompt.vue.d.ts +5 -0
- package/dist/prompts/prompts.vue.d.ts +20 -0
- package/dist/sender/components/editor-content/index.vue.d.ts +4 -0
- package/dist/sender/components/footer/index.vue.d.ts +38 -0
- package/dist/sender/components/layouts/MultiLineLayout.vue.d.ts +43 -0
- package/dist/sender/components/layouts/SingleLineLayout.vue.d.ts +32 -0
- package/dist/sender/composables/index.d.ts +7 -0
- package/dist/sender/composables/useAutoSize.d.ts +5 -0
- package/dist/sender/composables/useEditor.d.ts +13 -0
- package/dist/sender/composables/useKeyboardShortcuts.d.ts +7 -0
- package/dist/sender/composables/useModeSwitch.d.ts +4 -0
- package/dist/sender/composables/useSenderCore.d.ts +31 -0
- package/dist/sender/composables/useSlotScope.d.ts +10 -0
- package/dist/sender/context/index.d.ts +6 -0
- package/dist/sender/context/types.d.ts +7 -0
- package/dist/sender/extensions/constants.d.ts +94 -0
- package/dist/sender/extensions/index.d.ts +12 -0
- package/dist/sender/extensions/mention/commands.d.ts +20 -0
- package/dist/sender/extensions/mention/components/mention-list.vue.d.ts +18 -0
- package/dist/sender/extensions/mention/components/mention-view.vue.d.ts +19 -0
- package/dist/sender/extensions/mention/extension.d.ts +6 -0
- package/dist/sender/extensions/mention/index.d.ts +22 -0
- package/dist/sender/extensions/mention/plugin.d.ts +16 -0
- package/dist/sender/extensions/mention/types.d.ts +126 -0
- package/dist/sender/extensions/mention/utils.d.ts +34 -0
- package/dist/sender/extensions/suggestion/extension.d.ts +8 -0
- package/dist/sender/extensions/suggestion/index.d.ts +20 -0
- package/dist/sender/extensions/suggestion/plugin.d.ts +21 -0
- package/dist/sender/extensions/suggestion/suggestion-list.vue.d.ts +46 -0
- package/dist/sender/extensions/suggestion/types.d.ts +254 -0
- package/dist/sender/extensions/suggestion/utils/filter.d.ts +29 -0
- package/dist/sender/extensions/suggestion/utils/highlight.d.ts +73 -0
- package/dist/sender/extensions/template/block/extension.d.ts +6 -0
- package/dist/sender/extensions/template/block/plugins.d.ts +13 -0
- package/dist/sender/extensions/template/block/template-block-view.vue.d.ts +14 -0
- package/dist/sender/extensions/template/commands.d.ts +31 -0
- package/dist/sender/extensions/template/extension.d.ts +6 -0
- package/dist/sender/extensions/template/index.d.ts +21 -0
- package/dist/sender/extensions/template/select/dropdown-manager.d.ts +23 -0
- package/dist/sender/extensions/template/select/extension.d.ts +5 -0
- package/dist/sender/extensions/template/select/plugins.d.ts +34 -0
- package/dist/sender/extensions/template/select/template-select-view.vue.d.ts +20 -0
- package/dist/sender/extensions/template/types.d.ts +100 -0
- package/dist/sender/extensions/template/utils.d.ts +20 -0
- package/dist/sender/extensions/utils/id-generator.d.ts +16 -0
- package/dist/sender/extensions/utils/index.d.ts +7 -0
- package/dist/sender/extensions/utils/keyboard.d.ts +49 -0
- package/dist/sender/extensions/utils/position.d.ts +25 -0
- package/dist/sender/index.d.ts +136 -0
- package/dist/sender/index.js +178 -164
- package/dist/sender/index.type.d.ts +302 -0
- package/dist/sender/index.vue.d.ts +90 -0
- package/dist/sender/types/base.d.ts +239 -0
- package/dist/sender/types/components.d.ts +68 -0
- package/dist/sender/types/composables.d.ts +122 -0
- package/dist/sender/types/context.d.ts +132 -0
- package/dist/sender/types/slots.d.ts +67 -0
- package/dist/sender/utils/countGraphemes.d.ts +1 -0
- package/dist/sender-actions/action-button/index.vue.d.ts +23 -0
- package/dist/sender-actions/clear-button/index.vue.d.ts +2 -0
- package/dist/sender-actions/clear-button/useClearButtonState.d.ts +6 -0
- package/dist/sender-actions/default-actions/index.vue.d.ts +17 -0
- package/dist/sender-actions/index.d.ts +21 -0
- package/dist/sender-actions/index.js +1 -1
- package/dist/sender-actions/index.type.d.ts +7 -0
- package/dist/sender-actions/submit-button/index.vue.d.ts +2 -0
- package/dist/sender-actions/types/common.d.ts +40 -0
- package/dist/sender-actions/types/index.d.ts +5 -0
- package/dist/sender-actions/types/tooltip.d.ts +7 -0
- package/dist/sender-actions/upload-button/index.type.d.ts +57 -0
- package/dist/sender-actions/upload-button/index.vue.d.ts +16 -0
- package/dist/sender-actions/utils/tooltip.d.ts +8 -0
- package/dist/sender-actions/voice-button/index.type.d.ts +78 -0
- package/dist/sender-actions/voice-button/index.vue.d.ts +43 -0
- package/dist/sender-actions/voice-button/speech.types.d.ts +40 -0
- package/dist/sender-actions/voice-button/useSpeechHandler.d.ts +10 -0
- package/dist/sender-actions/voice-button/webSpeechHandler.d.ts +40 -0
- package/dist/sender-actions/word-counter/index.vue.d.ts +2 -0
- package/dist/sender-compat/index.d.ts +7 -0
- package/dist/sender-compat/index.type.d.ts +91 -0
- package/dist/sender-compat/index.vue.d.ts +532 -0
- package/dist/shared/composables/createTeleport.d.ts +2 -0
- package/dist/shared/composables/index.d.ts +5 -0
- package/dist/shared/composables/useAutoScroll.d.ts +25 -0
- package/dist/shared/composables/useSlotRefs.d.ts +12 -0
- package/dist/shared/composables/useTeleportTarget.d.ts +11 -0
- package/dist/shared/composables/useTouchDevice.d.ts +3 -0
- package/dist/shared/utils.d.ts +7 -0
- package/dist/style.css +1 -1
- package/dist/suggestion-pills/components/PillButton.vue.d.ts +16 -0
- package/dist/suggestion-pills/components/index.d.ts +1 -0
- package/dist/suggestion-pills/index.d.ts +13 -0
- package/dist/suggestion-pills/index.js +13 -13
- package/dist/suggestion-pills/index.type.d.ts +45 -0
- package/dist/suggestion-pills/index.vue.d.ts +44 -0
- package/dist/suggestion-popover/components/Backdrop.vue.d.ts +5 -0
- package/dist/suggestion-popover/components/Header.vue.d.ts +4 -0
- package/dist/suggestion-popover/components/Loading.vue.d.ts +17 -0
- package/dist/suggestion-popover/components/NoData.vue.d.ts +17 -0
- package/dist/suggestion-popover/components/Tooltip.vue.d.ts +19 -0
- package/dist/suggestion-popover/index.d.ts +7 -0
- package/dist/suggestion-popover/index.js +122 -125
- package/dist/suggestion-popover/index.type.d.ts +80 -0
- package/dist/suggestion-popover/index.vue.d.ts +262 -0
- package/dist/theme-provider/constants.d.ts +6 -0
- package/dist/theme-provider/index.d.ts +9 -0
- package/dist/theme-provider/index.js +32 -41
- package/dist/theme-provider/index.type.d.ts +18 -0
- package/dist/theme-provider/index.vue.d.ts +32 -0
- package/dist/theme-provider/useTheme.d.ts +11 -0
- package/dist/useSlotRefs.js +1 -1
- package/dist/useTheme.js +22 -0
- package/dist/utils.js +1 -1
- package/dist/welcome/index.d.ts +7 -0
- package/dist/welcome/index.type.d.ts +10 -0
- package/dist/welcome/index.vue.d.ts +18 -0
- package/package.json +22 -3
- package/dist/no-data.js +0 -4
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BubbleMessage, BubbleProps } from './index.type';
|
|
2
|
+
type __VLS_Props = Pick<BubbleProps, 'role' | 'placement' | 'shape'> & {
|
|
3
|
+
messages: BubbleMessage[];
|
|
4
|
+
contentIndex?: number;
|
|
5
|
+
};
|
|
6
|
+
declare function __VLS_template(): {
|
|
7
|
+
attrs: Partial<{}>;
|
|
8
|
+
slots: {
|
|
9
|
+
default?(_: {}): any;
|
|
10
|
+
};
|
|
11
|
+
refs: {};
|
|
12
|
+
rootEl: any;
|
|
13
|
+
};
|
|
14
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
15
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
19
|
+
new (): {
|
|
20
|
+
$slots: S;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BubbleContentRendererProps } from './index.type';
|
|
2
|
+
type __VLS_Props = BubbleContentRendererProps;
|
|
3
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
4
|
+
"state-change": (payload: {
|
|
5
|
+
key: string;
|
|
6
|
+
value: unknown;
|
|
7
|
+
contentIndex: number;
|
|
8
|
+
}) => any;
|
|
9
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
|
+
"onState-change"?: ((payload: {
|
|
11
|
+
key: string;
|
|
12
|
+
value: unknown;
|
|
13
|
+
contentIndex: number;
|
|
14
|
+
}) => any) | undefined;
|
|
15
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BubbleMessageGroup, BubbleProps, BubbleRoleConfig, BubbleSlots } from './index.type';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
messageGroup: BubbleMessageGroup;
|
|
4
|
+
roleConfig?: BubbleRoleConfig;
|
|
5
|
+
contentRenderMode?: BubbleProps['contentRenderMode'];
|
|
6
|
+
contentResolver?: BubbleProps['contentResolver'];
|
|
7
|
+
};
|
|
8
|
+
declare function __VLS_template(): {
|
|
9
|
+
attrs: Partial<{}>;
|
|
10
|
+
slots: Readonly<BubbleSlots> & BubbleSlots;
|
|
11
|
+
refs: {};
|
|
12
|
+
rootEl: HTMLDivElement;
|
|
13
|
+
};
|
|
14
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
15
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
16
|
+
"state-change": (payload: {
|
|
17
|
+
key: string;
|
|
18
|
+
value: unknown;
|
|
19
|
+
messageIndex: number;
|
|
20
|
+
contentIndex: number;
|
|
21
|
+
}) => any;
|
|
22
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
23
|
+
"onState-change"?: ((payload: {
|
|
24
|
+
key: string;
|
|
25
|
+
value: unknown;
|
|
26
|
+
messageIndex: number;
|
|
27
|
+
contentIndex: number;
|
|
28
|
+
}) => any) | undefined;
|
|
29
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
30
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
31
|
+
export default _default;
|
|
32
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
33
|
+
new (): {
|
|
34
|
+
$slots: S;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BubbleListProps, BubbleListSlots, BubbleMessage, BubbleMessageGroup } from './index.type';
|
|
2
|
+
declare function __VLS_template(): {
|
|
3
|
+
attrs: Partial<{}>;
|
|
4
|
+
slots: Readonly<BubbleListSlots> & BubbleListSlots;
|
|
5
|
+
refs: {
|
|
6
|
+
listRef: HTMLDivElement;
|
|
7
|
+
};
|
|
8
|
+
rootEl: HTMLDivElement;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
11
|
+
declare const __VLS_component: import('vue').DefineComponent<BubbleListProps, {
|
|
12
|
+
scrollToBottom: (behavior?: ScrollBehavior) => Promise<void>;
|
|
13
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
14
|
+
"state-change": (payload: {
|
|
15
|
+
key: string;
|
|
16
|
+
value: unknown;
|
|
17
|
+
messageIndex: number;
|
|
18
|
+
contentIndex: number;
|
|
19
|
+
}) => any;
|
|
20
|
+
}, string, import('vue').PublicProps, Readonly<BubbleListProps> & Readonly<{
|
|
21
|
+
"onState-change"?: ((payload: {
|
|
22
|
+
key: string;
|
|
23
|
+
value: unknown;
|
|
24
|
+
messageIndex: number;
|
|
25
|
+
contentIndex: number;
|
|
26
|
+
}) => any) | undefined;
|
|
27
|
+
}>, {
|
|
28
|
+
contentResolver: (message: BubbleMessage) => import('./index.type').ChatMessageContent | undefined;
|
|
29
|
+
groupStrategy: "consecutive" | "divider" | ((messages: BubbleMessage[], dividerRole?: string) => BubbleMessageGroup[]);
|
|
30
|
+
dividerRole: string;
|
|
31
|
+
fallbackRole: string;
|
|
32
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
33
|
+
listRef: HTMLDivElement;
|
|
34
|
+
}, HTMLDivElement>;
|
|
35
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
36
|
+
export default _default;
|
|
37
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
38
|
+
new (): {
|
|
39
|
+
$slots: S;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BubbleProviderProps } from './index.type';
|
|
2
|
+
declare function __VLS_template(): {
|
|
3
|
+
attrs: Partial<{}>;
|
|
4
|
+
slots: {
|
|
5
|
+
default?(_: {}): any;
|
|
6
|
+
};
|
|
7
|
+
refs: {};
|
|
8
|
+
rootEl: any;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
11
|
+
declare const __VLS_component: import('vue').DefineComponent<BubbleProviderProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<BubbleProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './useBubbleBoxRenderer';
|
|
2
|
+
export * from './useBubbleContentRenderer';
|
|
3
|
+
export * from './useBubbleStateChange';
|
|
4
|
+
export * from './useBubbleStore';
|
|
5
|
+
export * from './useContentResolver';
|
|
6
|
+
export * from './useCopyCleanup';
|
|
7
|
+
export * from './useMessageContent';
|
|
8
|
+
export * from './useMessageGroup';
|
|
9
|
+
export * from './useOmitMessageFields';
|
|
10
|
+
export * from './useToolCall';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component, ComputedRef, MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { BubbleAttributes, BubbleBoxAttributesConfig, BubbleBoxRendererMatch, BubbleMessage } from '../index.type';
|
|
3
|
+
export declare function setupBubbleBoxRenderer(renderers: {
|
|
4
|
+
boxRendererMatches?: MaybeRefOrGetter<Array<BubbleBoxRendererMatch>>;
|
|
5
|
+
boxAttributes?: MaybeRefOrGetter<BubbleBoxAttributesConfig | undefined>;
|
|
6
|
+
fallbackBoxRenderer?: MaybeRefOrGetter<Component>;
|
|
7
|
+
}): void;
|
|
8
|
+
/**
|
|
9
|
+
* Setup prop-level fallback box renderer
|
|
10
|
+
* Used in Bubble component to provide prop-level configuration that won't override parent provider
|
|
11
|
+
*/
|
|
12
|
+
export declare function setupBubblePropBoxRenderer(renderers: {
|
|
13
|
+
fallbackBoxRenderer?: MaybeRefOrGetter<Component | undefined>;
|
|
14
|
+
}): void;
|
|
15
|
+
export declare function useBubbleBoxRenderer(messages: MaybeRefOrGetter<BubbleMessage[]>, contentIndex?: number): ComputedRef<{
|
|
16
|
+
renderer: Component;
|
|
17
|
+
attributes?: BubbleAttributes;
|
|
18
|
+
}>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component, ComputedRef, MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { BubbleAttributes, BubbleContentAttributesConfig, BubbleContentRendererMatch, BubbleMessage } from '../index.type';
|
|
3
|
+
export declare function setupBubbleContentRenderer(renderers: {
|
|
4
|
+
contentRendererMatches?: MaybeRefOrGetter<Array<BubbleContentRendererMatch>>;
|
|
5
|
+
contentAttributes?: MaybeRefOrGetter<BubbleContentAttributesConfig | undefined>;
|
|
6
|
+
fallbackContentRenderer?: MaybeRefOrGetter<Component>;
|
|
7
|
+
}): void;
|
|
8
|
+
/**
|
|
9
|
+
* Setup prop-level fallback content renderer
|
|
10
|
+
* Used in Bubble component to provide prop-level configuration that won't override parent provider
|
|
11
|
+
*/
|
|
12
|
+
export declare function setupBubblePropContentRenderer(renderers: {
|
|
13
|
+
fallbackContentRenderer?: MaybeRefOrGetter<Component | undefined>;
|
|
14
|
+
}): void;
|
|
15
|
+
export declare function useBubbleContentRenderer(message: MaybeRefOrGetter<BubbleMessage>, contentIndex: number): ComputedRef<{
|
|
16
|
+
renderer: Component;
|
|
17
|
+
attributes?: BubbleAttributes;
|
|
18
|
+
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Setup bubble store
|
|
3
|
+
* Call this function in BubbleList or Bubble component to provide a global store
|
|
4
|
+
* If a store already exists, it will return the existing store without creating a new one
|
|
5
|
+
*
|
|
6
|
+
* @param initialData - Initial data for the store (only used if store doesn't exist)
|
|
7
|
+
* @returns The reactive store object
|
|
8
|
+
*/
|
|
9
|
+
export declare function setupBubbleStore<T extends Record<string, unknown>>(initialData?: T): T;
|
|
10
|
+
/**
|
|
11
|
+
* Use bubble store
|
|
12
|
+
* Call this function in child components to access the global store
|
|
13
|
+
*
|
|
14
|
+
* @returns The reactive store object, or undefined if not provided
|
|
15
|
+
*/
|
|
16
|
+
export declare function useBubbleStore<T extends Record<string, unknown> = Record<string, unknown>>(): T;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { BubbleMessage, BubbleProps } from '../index.type';
|
|
3
|
+
type Resolver = BubbleProps['contentResolver'];
|
|
4
|
+
export declare const useContentResolver: (contentResolver?: MaybeRefOrGetter<Resolver>) => (message: BubbleMessage) => import('../index.type').ChatMessageContent | undefined;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BubbleContentRendererProps, ChatMessageContent, ChatMessageContentItem } from '../index.type';
|
|
2
|
+
export declare const useMessageContent: <T extends ChatMessageContent = ChatMessageContent>(props: Readonly<BubbleContentRendererProps<T>>) => {
|
|
3
|
+
content: import('vue').ComputedRef<ChatMessageContentItem>;
|
|
4
|
+
contentText: import('vue').ComputedRef<string>;
|
|
5
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { BubbleMessageGroup } from '../index.type';
|
|
3
|
+
export declare function setupBubbleMessageGroup(messageGroup: MaybeRefOrGetter<BubbleMessageGroup | undefined>): void;
|
|
4
|
+
export declare function useBubbleMessageGroup(): MaybeRefOrGetter<BubbleMessageGroup | undefined>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ComputedRef } from 'vue';
|
|
2
|
+
import { BubbleContentRendererProps, BubbleMessage } from '../index.type';
|
|
3
|
+
/**
|
|
4
|
+
* Omit specified fields from message and return computed props
|
|
5
|
+
* @param props - The original props containing the message
|
|
6
|
+
* @param fields - Array of field names to omit from the message
|
|
7
|
+
* @returns An object containing restMessage and restProps computed refs
|
|
8
|
+
*/
|
|
9
|
+
export declare function useOmitMessageFields<P extends BubbleContentRendererProps, K extends keyof BubbleMessage>(props: P, fields: K[]): {
|
|
10
|
+
restMessage: ComputedRef<Omit<BubbleMessage, K>>;
|
|
11
|
+
restProps: ComputedRef<P>;
|
|
12
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BubbleContentRendererProps, ChatMessageContent } from '../index.type';
|
|
2
|
+
declare const toolCallStatus: readonly ["running", "success", "failed", "cancelled"];
|
|
3
|
+
export type ToolCallStatus = (typeof toolCallStatus)[number];
|
|
4
|
+
export declare const useToolCall: (props: BubbleContentRendererProps<ChatMessageContent, {
|
|
5
|
+
toolCall?: Record<string, {
|
|
6
|
+
status?: ToolCallStatus;
|
|
7
|
+
open?: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
}> & {
|
|
10
|
+
toolCallIndex: number;
|
|
11
|
+
}) => {
|
|
12
|
+
toolCall: import('vue').ComputedRef<import('../index.type').ToolCall | undefined>;
|
|
13
|
+
toolCallWithResult: Readonly<import('vue').Ref<{
|
|
14
|
+
readonly arguments?: any;
|
|
15
|
+
readonly result?: any;
|
|
16
|
+
}, {
|
|
17
|
+
readonly arguments?: any;
|
|
18
|
+
readonly result?: any;
|
|
19
|
+
}>>;
|
|
20
|
+
state: import('vue').ComputedRef<{
|
|
21
|
+
status: "success" | "running" | "failed" | "cancelled" | undefined;
|
|
22
|
+
open: boolean | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component, InjectionKey, MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { BubbleBoxAttributesConfig, BubbleBoxRendererMatch, BubbleContentAttributesConfig, BubbleContentRendererMatch, BubbleMessageGroup } from './index.type';
|
|
3
|
+
/**
|
|
4
|
+
* Injection key for bubble message group
|
|
5
|
+
* Used to provide/inject message group between BubbleItem and Bubble components
|
|
6
|
+
*/
|
|
7
|
+
export declare const BUBBLE_MESSAGE_GROUP_KEY: InjectionKey<MaybeRefOrGetter<BubbleMessageGroup | undefined>>;
|
|
8
|
+
export declare const BUBBLE_BOX_RENDERER_MATCHES_KEY: InjectionKey<MaybeRefOrGetter<Array<BubbleBoxRendererMatch>>>;
|
|
9
|
+
export declare const BUBBLE_BOX_FALLBACK_RENDERER_KEY: InjectionKey<MaybeRefOrGetter<Component>>;
|
|
10
|
+
export declare const BUBBLE_BOX_ATTRIBUTES_KEY: InjectionKey<MaybeRefOrGetter<BubbleBoxAttributesConfig | undefined>>;
|
|
11
|
+
export declare const BUBBLE_BOX_PROP_FALLBACK_RENDERER_KEY: InjectionKey<MaybeRefOrGetter<Component | undefined>>;
|
|
12
|
+
export declare const BUBBLE_CONTENT_RENDERER_MATCHES_KEY: InjectionKey<MaybeRefOrGetter<Array<BubbleContentRendererMatch>>>;
|
|
13
|
+
export declare const BUBBLE_CONTENT_FALLBACK_RENDERER_KEY: InjectionKey<MaybeRefOrGetter<Component>>;
|
|
14
|
+
export declare const BUBBLE_CONTENT_ATTRIBUTES_KEY: InjectionKey<MaybeRefOrGetter<BubbleContentAttributesConfig | undefined>>;
|
|
15
|
+
export declare const BUBBLE_CONTENT_PROP_FALLBACK_RENDERER_KEY: InjectionKey<MaybeRefOrGetter<Component | undefined>>;
|
|
16
|
+
/**
|
|
17
|
+
* Injection key for bubble store
|
|
18
|
+
* Used to provide/inject a global store for sharing data between BubbleList and Bubble components
|
|
19
|
+
*/
|
|
20
|
+
export declare const BUBBLE_STORE_KEY: InjectionKey<Record<string, unknown>>;
|
|
21
|
+
export declare const BUBBLE_STATE_CHANGE_FN_KEY: InjectionKey<(key: string, value: unknown) => void>;
|
|
22
|
+
/**
|
|
23
|
+
* Bubble list 上下文的注入键
|
|
24
|
+
* 用于标识 Bubble 组件是否在 BubbleList 下
|
|
25
|
+
*/
|
|
26
|
+
export declare const BUBBLE_LIST_CONTEXT_KEY: InjectionKey<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* 气泡渲染器匹配优先级常量
|
|
29
|
+
*
|
|
30
|
+
* 用于定义不同类型渲染器的匹配优先级,数值越小优先级越高
|
|
31
|
+
*
|
|
32
|
+
* - LOADING: 通常基于 message.loading 判断。比如: `{ loading: true }`
|
|
33
|
+
* - NORMAL: 普通渲染器的默认优先级
|
|
34
|
+
* - CONTENT: 通常基于 message.content 判断。比如: `{ content: [{ type: 'image_url', image_url: 'xxx' }] }`
|
|
35
|
+
* - ROLE: 通常基于 message.role 判断。比如: `{ role: 'tool' }`
|
|
36
|
+
*/
|
|
37
|
+
export declare const BubbleRendererMatchPriority: {
|
|
38
|
+
readonly LOADING: -1;
|
|
39
|
+
readonly NORMAL: 0;
|
|
40
|
+
readonly CONTENT: 10;
|
|
41
|
+
readonly ROLE: 20;
|
|
42
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { App } from 'vue';
|
|
2
|
+
import { default as BubbleComp } from './Bubble.vue';
|
|
3
|
+
import { default as BubbleListComp } from './BubbleList.vue';
|
|
4
|
+
import { default as BubbleProviderComp } from './BubbleProvider.vue';
|
|
5
|
+
declare const bubbleInstall: (app: App) => void;
|
|
6
|
+
export declare const Bubble: typeof BubbleComp & {
|
|
7
|
+
install: typeof bubbleInstall;
|
|
8
|
+
};
|
|
9
|
+
declare const bubbleListInstall: (app: App) => void;
|
|
10
|
+
export declare const BubbleList: typeof BubbleListComp & {
|
|
11
|
+
install: typeof bubbleListInstall;
|
|
12
|
+
};
|
|
13
|
+
declare const bubbleProviderInstall: (app: App) => void;
|
|
14
|
+
export declare const BubbleProvider: typeof BubbleProviderComp & {
|
|
15
|
+
install: typeof bubbleProviderInstall;
|
|
16
|
+
};
|
|
17
|
+
export { useBubbleBoxRenderer, useBubbleContentRenderer, useBubbleStateChangeFn, useMessageContent, useOmitMessageFields, useToolCall, } from './composables';
|
|
18
|
+
export { BubbleRendererMatchPriority } from './constants';
|
|
19
|
+
export { BubbleRenderers } from './renderers/allRenderers';
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Component, VNode } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* 工具调用接口(支持 OpenAI 格式)
|
|
4
|
+
*/
|
|
5
|
+
export interface ToolCall {
|
|
6
|
+
id: string;
|
|
7
|
+
type: 'function' | string;
|
|
8
|
+
function: {
|
|
9
|
+
name: string;
|
|
10
|
+
arguments: string;
|
|
11
|
+
};
|
|
12
|
+
[x: string]: any;
|
|
13
|
+
}
|
|
14
|
+
export type ChatMessageContentItem = {
|
|
15
|
+
type: string;
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
};
|
|
18
|
+
export type ChatMessageContent = string | ChatMessageContentItem[];
|
|
19
|
+
/**
|
|
20
|
+
* 聊天消息接口(支持 OpenAI 格式)
|
|
21
|
+
*/
|
|
22
|
+
interface ChatMessage<T extends ChatMessageContent = ChatMessageContent> {
|
|
23
|
+
role: string;
|
|
24
|
+
content?: T;
|
|
25
|
+
reasoning_content?: string;
|
|
26
|
+
tool_calls?: ToolCall[];
|
|
27
|
+
tool_call_id?: string;
|
|
28
|
+
name?: string;
|
|
29
|
+
}
|
|
30
|
+
type ChatMessageWithOptionalRole<T extends ChatMessageContent = ChatMessageContent> = Omit<ChatMessage<T>, 'role'> & {
|
|
31
|
+
role?: string;
|
|
32
|
+
};
|
|
33
|
+
export type BubbleMessage<T extends ChatMessageContent = ChatMessageContent, S extends Record<string, unknown> = Record<string, unknown>> = ChatMessageWithOptionalRole<T> & {
|
|
34
|
+
id?: string;
|
|
35
|
+
loading?: boolean;
|
|
36
|
+
state?: S;
|
|
37
|
+
};
|
|
38
|
+
export type BubbleProps = BubbleMessage & {
|
|
39
|
+
hidden?: boolean;
|
|
40
|
+
avatar?: VNode | Component;
|
|
41
|
+
placement?: 'start' | 'end';
|
|
42
|
+
shape?: 'corner' | 'rounded' | 'none';
|
|
43
|
+
contentRenderMode?: 'single' | 'split';
|
|
44
|
+
contentResolver?: (message: BubbleMessage) => ChatMessageContent | undefined;
|
|
45
|
+
fallbackBoxRenderer?: Component<BubbleBoxRendererProps>;
|
|
46
|
+
fallbackContentRenderer?: Component<BubbleContentRendererProps>;
|
|
47
|
+
};
|
|
48
|
+
export type BubbleMessageGroup = {
|
|
49
|
+
role: string;
|
|
50
|
+
messages: BubbleMessage[];
|
|
51
|
+
messageIndexes: number[];
|
|
52
|
+
startIndex: number;
|
|
53
|
+
};
|
|
54
|
+
export type BubbleAttributes = Record<string, unknown>;
|
|
55
|
+
export type BubbleBoxRendererAttributeMap = BubbleAttributes;
|
|
56
|
+
export type BubbleBoxRendererAttributesResolver = (messages: BubbleMessage[], content: ChatMessageContentItem | undefined, contentIndex: number | undefined) => BubbleBoxRendererAttributeMap | undefined;
|
|
57
|
+
export type BubbleBoxAttributesResolver = (messages: BubbleMessage[], content: ChatMessageContentItem | undefined, contentIndex: number | undefined) => BubbleAttributes | undefined;
|
|
58
|
+
export type BubbleContentAttributesResolver = (message: BubbleMessage, content: ChatMessageContentItem, contentIndex: number) => BubbleAttributes | undefined;
|
|
59
|
+
export type BubbleBoxAttributesConfig = BubbleAttributes | BubbleBoxAttributesResolver;
|
|
60
|
+
export type BubbleContentAttributesConfig = BubbleAttributes | BubbleContentAttributesResolver;
|
|
61
|
+
export type BubbleBoxRendererMatch = {
|
|
62
|
+
/**
|
|
63
|
+
* 匹配函数,用于判断是否应该使用此渲染器
|
|
64
|
+
* @param messages - 消息数组
|
|
65
|
+
* @param content - 要渲染的内容项。仅在 `split` 模式下(contentIndex 为数字)才会传入;为当前消息(messages[0])经过 `contentResolver` 解析后的内容;`messages[0].content` 一定是一个数组,`content` 则为对应索引的内容项,即 `messages[0].content[contentIndex]`;当 contentIndex 为 undefined 时,content 也为 undefined
|
|
66
|
+
* @param contentIndex - 内容索引,用于指定要渲染的内容项。仅在 split 模式下才会传入(为数字),此时 messages 数组长度为 1
|
|
67
|
+
* @returns 如果匹配则返回 true,否则返回 false
|
|
68
|
+
*/
|
|
69
|
+
find: (messages: BubbleMessage[], content: ChatMessageContentItem | undefined, contentIndex: number | undefined) => boolean;
|
|
70
|
+
renderer: Component<BubbleBoxRendererProps>;
|
|
71
|
+
priority?: number;
|
|
72
|
+
attributes?: BubbleBoxRendererAttributeMap | BubbleBoxRendererAttributesResolver;
|
|
73
|
+
};
|
|
74
|
+
export type BubbleContentRendererMatch = {
|
|
75
|
+
/**
|
|
76
|
+
* 匹配函数,用于判断是否应该使用此渲染器
|
|
77
|
+
* @param message - 消息对象
|
|
78
|
+
* @param content - 要渲染的内容项。为当前消息经过 contentResolver 解析并统一化后的内容项:若解析结果为数组,则取对应索引的内容项(由 contentIndex 指定);若为字符串,则转为 { type: 'text', text: string }。统一化为 ChatMessageContentItem 对象格式
|
|
79
|
+
* @param contentIndex - 内容索引。由 contentResolver 的解析结果为数组时使用。若 contentResolver 解析结果为字符串,content 会转换为对象,此时 contentIndex 为 0
|
|
80
|
+
* @returns 如果匹配则返回 true,否则返回 false
|
|
81
|
+
*/
|
|
82
|
+
find: (message: BubbleMessage, content: ChatMessageContentItem, contentIndex: number) => boolean;
|
|
83
|
+
renderer: Component<BubbleContentRendererProps>;
|
|
84
|
+
priority?: number;
|
|
85
|
+
attributes?: BubbleAttributes;
|
|
86
|
+
};
|
|
87
|
+
export type BubbleBoxRendererProps = Pick<BubbleProps, 'placement' | 'shape'>;
|
|
88
|
+
export type BubbleContentRendererProps<T extends ChatMessageContent = ChatMessageContent, S extends Record<string, unknown> = Record<string, unknown>> = {
|
|
89
|
+
message: BubbleMessage<T, S>;
|
|
90
|
+
contentIndex: number;
|
|
91
|
+
};
|
|
92
|
+
type BubbleSlotProps = {
|
|
93
|
+
messages: BubbleMessage[];
|
|
94
|
+
role?: string;
|
|
95
|
+
};
|
|
96
|
+
export interface BubbleSlots {
|
|
97
|
+
prefix?: (slotProps: BubbleSlotProps) => VNode | VNode[];
|
|
98
|
+
suffix?: (slotProps: BubbleSlotProps) => VNode | VNode[];
|
|
99
|
+
after?: (slotProps: BubbleSlotProps) => VNode | VNode[];
|
|
100
|
+
'content-footer'?: (slotProps: BubbleSlotProps & {
|
|
101
|
+
contentIndex?: number;
|
|
102
|
+
}) => VNode | VNode[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* 角色配置
|
|
106
|
+
* 用于配置不同角色的气泡样式
|
|
107
|
+
*/
|
|
108
|
+
export type BubbleRoleConfig = Pick<BubbleProps, 'avatar' | 'placement' | 'shape' | 'hidden' | 'fallbackBoxRenderer' | 'fallbackContentRenderer'>;
|
|
109
|
+
/**
|
|
110
|
+
* 自定义分组函数类型
|
|
111
|
+
*/
|
|
112
|
+
type BubbleGroupFunction = (messages: BubbleMessage[], dividerRole?: string) => BubbleMessageGroup[];
|
|
113
|
+
export interface BubbleListProps {
|
|
114
|
+
messages: BubbleMessage[];
|
|
115
|
+
/**
|
|
116
|
+
* 分组策略:
|
|
117
|
+
* - 'consecutive': 连续相同角色的消息合并为一组
|
|
118
|
+
* - 'divider': 按分割角色分组(每条分割角色消息单独成组,其他消息在两个分割角色之间合并为一组)
|
|
119
|
+
* - 自定义函数: (messages, dividerRole) => BubbleMessageGroup[]
|
|
120
|
+
*
|
|
121
|
+
* 特殊情况:
|
|
122
|
+
* - hidden 的消息需要单独分组,连续的 hidden 可以同一组
|
|
123
|
+
*/
|
|
124
|
+
groupStrategy?: 'consecutive' | 'divider' | BubbleGroupFunction;
|
|
125
|
+
/**
|
|
126
|
+
* 'divider' 策略的分割角色
|
|
127
|
+
* 具有此角色的消息将作为分割线
|
|
128
|
+
* @default 'user'
|
|
129
|
+
*/
|
|
130
|
+
dividerRole?: string;
|
|
131
|
+
/**
|
|
132
|
+
* 当消息没有角色或角色为空时,使用此角色
|
|
133
|
+
* @default 'assistant'
|
|
134
|
+
*/
|
|
135
|
+
fallbackRole?: string;
|
|
136
|
+
/**
|
|
137
|
+
* 角色配置(头像、位置、形状)
|
|
138
|
+
*/
|
|
139
|
+
roleConfigs?: Record<string, BubbleRoleConfig>;
|
|
140
|
+
contentRenderMode?: BubbleProps['contentRenderMode'];
|
|
141
|
+
contentResolver?: BubbleProps['contentResolver'];
|
|
142
|
+
/**
|
|
143
|
+
* 是否自动滚动到底部。需要满足以下条件:
|
|
144
|
+
* - BubbleList 是可滚动容器(需要 scrollHeight > clientHeight)
|
|
145
|
+
* - 滚动容器接近底部
|
|
146
|
+
*
|
|
147
|
+
* @default false
|
|
148
|
+
*/
|
|
149
|
+
autoScroll?: boolean;
|
|
150
|
+
}
|
|
151
|
+
export interface BubbleProviderProps {
|
|
152
|
+
boxRendererMatches?: BubbleBoxRendererMatch[];
|
|
153
|
+
contentRendererMatches?: BubbleContentRendererMatch[];
|
|
154
|
+
boxAttributes?: BubbleBoxAttributesConfig;
|
|
155
|
+
contentAttributes?: BubbleContentAttributesConfig;
|
|
156
|
+
fallbackBoxRenderer?: Component<BubbleBoxRendererProps>;
|
|
157
|
+
fallbackContentRenderer?: Component<BubbleContentRendererProps>;
|
|
158
|
+
store?: Record<string, unknown>;
|
|
159
|
+
}
|
|
160
|
+
type BubbleListSlotProps = BubbleSlotProps & {
|
|
161
|
+
messageIndexes: number[];
|
|
162
|
+
};
|
|
163
|
+
export interface BubbleListSlots {
|
|
164
|
+
prefix?: (slotProps: BubbleListSlotProps) => VNode | VNode[];
|
|
165
|
+
suffix?: (slotProps: BubbleListSlotProps) => VNode | VNode[];
|
|
166
|
+
after?: (slotProps: BubbleListSlotProps) => VNode | VNode[];
|
|
167
|
+
'content-footer'?: (slotProps: BubbleListSlotProps & {
|
|
168
|
+
contentIndex?: number;
|
|
169
|
+
}) => VNode | VNode[];
|
|
170
|
+
}
|
|
171
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BubbleBoxRendererProps } from '../index.type';
|
|
2
|
+
declare function __VLS_template(): {
|
|
3
|
+
attrs: Partial<{}>;
|
|
4
|
+
slots: {
|
|
5
|
+
default?(_: {}): any;
|
|
6
|
+
};
|
|
7
|
+
refs: {};
|
|
8
|
+
rootEl: HTMLDivElement;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
11
|
+
declare const __VLS_component: import('vue').DefineComponent<BubbleBoxRendererProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<BubbleBoxRendererProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
12
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BubbleContentRendererProps, ChatMessageContentItem } from '../index.type';
|
|
2
|
+
type __VLS_Props = BubbleContentRendererProps<ChatMessageContentItem[]>;
|
|
3
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLImageElement>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BubbleContentRendererProps } from '../index.type';
|
|
2
|
+
type __VLS_Props = BubbleContentRendererProps;
|
|
3
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BubbleContentRendererProps } from '../index.type';
|
|
2
|
+
type __VLS_Props = BubbleContentRendererProps;
|
|
3
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BubbleContentRendererProps, ChatMessageContent } from '../index.type';
|
|
2
|
+
type __VLS_Props = BubbleContentRendererProps<ChatMessageContent, {
|
|
3
|
+
thinking?: boolean;
|
|
4
|
+
open?: boolean;
|
|
5
|
+
}>;
|
|
6
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
7
|
+
detailRef: HTMLParagraphElement;
|
|
8
|
+
}, any>;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BubbleContentRendererProps } from '../index.type';
|
|
2
|
+
type __VLS_Props = BubbleContentRendererProps;
|
|
3
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ToolCallStatus } from '../composables';
|
|
2
|
+
import { BubbleContentRendererProps, ChatMessageContent } from '../index.type';
|
|
3
|
+
type __VLS_Props = BubbleContentRendererProps<ChatMessageContent, {
|
|
4
|
+
toolCall?: Record<string, {
|
|
5
|
+
status?: ToolCallStatus;
|
|
6
|
+
open?: boolean;
|
|
7
|
+
}>;
|
|
8
|
+
}> & {
|
|
9
|
+
toolCallIndex: number;
|
|
10
|
+
};
|
|
11
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
12
|
+
detailRef: HTMLDivElement;
|
|
13
|
+
}, HTMLDivElement>;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BubbleContentRendererProps } from '../index.type';
|
|
2
|
+
type __VLS_Props = BubbleContentRendererProps<string>;
|
|
3
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BubbleContentRendererProps } from '../index.type';
|
|
2
|
+
type __VLS_Props = BubbleContentRendererProps;
|
|
3
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
4
|
+
export default _default;
|