@deep-eye/core 0.6.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +91 -14
  3. package/dist/components/chat/AiConversation.vue.d.ts.map +1 -1
  4. package/dist/components/chat/ChatBot.vue.d.ts +48 -0
  5. package/dist/components/chat/ChatBot.vue.d.ts.map +1 -0
  6. package/dist/components/chat/components/AssistantTrace.vue.d.ts +27 -0
  7. package/dist/components/chat/components/AssistantTrace.vue.d.ts.map +1 -0
  8. package/dist/components/chat/components/ChatActionbar.vue.d.ts +2 -0
  9. package/dist/components/chat/components/ChatActionbar.vue.d.ts.map +1 -1
  10. package/dist/components/chat/components/ChatMessage.vue.d.ts +32 -10
  11. package/dist/components/chat/components/ChatMessage.vue.d.ts.map +1 -1
  12. package/dist/components/chat/components/ChatSender.vue.d.ts +58 -0
  13. package/dist/components/chat/components/ChatSender.vue.d.ts.map +1 -0
  14. package/dist/components/chat/components/MessageBubble.vue.d.ts +32 -10
  15. package/dist/components/chat/components/MessageBubble.vue.d.ts.map +1 -1
  16. package/dist/components/chat/components/OpenGenUIToolRenderer.vue.d.ts.map +1 -1
  17. package/dist/components/chat/components/TextPartRenderer.vue.d.ts +6 -1
  18. package/dist/components/chat/components/TextPartRenderer.vue.d.ts.map +1 -1
  19. package/dist/components/chat/components/index.d.ts +1 -0
  20. package/dist/components/chat/components/index.d.ts.map +1 -1
  21. package/dist/components/chat/composables/useConversation.d.ts +1 -2
  22. package/dist/components/chat/composables/useConversation.d.ts.map +1 -1
  23. package/dist/components/chat/index.d.ts +4 -14
  24. package/dist/components/chat/index.d.ts.map +1 -1
  25. package/dist/components/chat/mdoc/ArtifactBlock.vue.d.ts +13 -0
  26. package/dist/components/chat/mdoc/ArtifactBlock.vue.d.ts.map +1 -0
  27. package/dist/components/chat/mdoc/AskUserForm.vue.d.ts +2 -2
  28. package/dist/components/chat/mdoc/ContentNodes.vue.d.ts +6 -1
  29. package/dist/components/chat/mdoc/ContentNodes.vue.d.ts.map +1 -1
  30. package/dist/components/chat/mdoc/artifactDownload.d.ts +31 -0
  31. package/dist/components/chat/mdoc/artifactDownload.d.ts.map +1 -0
  32. package/dist/components/chat/mdoc/builtInRegistry.d.ts +5 -0
  33. package/dist/components/chat/mdoc/builtInRegistry.d.ts.map +1 -1
  34. package/dist/components/chat/mdoc/index.d.ts +1 -1
  35. package/dist/components/chat/mdoc/index.d.ts.map +1 -1
  36. package/dist/components/chat/presentation.d.ts +27 -0
  37. package/dist/components/chat/presentation.d.ts.map +1 -0
  38. package/dist/components/chat/types.d.ts +57 -155
  39. package/dist/components/chat/types.d.ts.map +1 -1
  40. package/dist/index.cjs +67 -64
  41. package/dist/index.js +8199 -14957
  42. package/dist/style.css +1 -1
  43. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  此文件记录 `@deep-eye/core` 的用户可见变更。新版本采用语义化版本,并按 `Added`、`Changed`、`Fixed`、`Removed` 分类记录。
4
4
 
5
+ ## [0.7.0] - 2026-07-23
6
+
7
+ ### Added
8
+
9
+ - `ChatSender` 组件新增文件附件功能,支持多文件上传和预览。
10
+ - 图片文件以 120x120 缩略图卡片显示,非图片文件显示文件名、类型标签和大小信息。
11
+ - 文件卡片支持悬浮显示删除按钮,支持累加上传多个文件。
12
+ - 新增截图功能,使用浏览器原生 `getDisplayMedia` API 支持屏幕、窗口或标签页截图,截图后自动添加到附件列表。
13
+ - `ChatSender` 导出 `AttachmentMenuItem` 类型,支持自定义附件菜单项。
14
+
15
+ ### Changed
16
+
17
+ - 附件菜单从直接触发文件选择改为弹出菜单模式,与主流 AI 产品交互一致。
18
+ - 文件预览采用卡片化设计,统一尺寸和样式,提升视觉一致性。
19
+
5
20
  ## [0.6.0] - 2026-07-22
6
21
 
7
22
  ### Added
@@ -14,6 +29,13 @@
14
29
 
15
30
  - 图片组改为可展开的图片堆叠,并支持查看原图。
16
31
  - “返回最新消息”操作调整至会话右下角。
32
+ - 助手默认使用内置标识,并将标识尺寸调整为 26px。
33
+
34
+ ### Fixed
35
+
36
+ - 流式回复在首个可见内容到达前显示加载状态;尾行扫光在高频 chunk 下保持可见。
37
+ - 混合流中的 `LLM Running`、`🛠️` 和 `<summary>` 运行标记不再进入正文或默认复制内容。
38
+ - 会话列表不再渲染结构化工具调用和工具结果。
17
39
 
18
40
  ## [0.2.0]
19
41
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @deep-eye/core
2
2
 
3
- Vue 3 组件库,提供思维导图和 AI 会话渲染组件。
3
+ 深瞳前端团队企业级 Vue 3 组件库,提供 AI 会话、思维导图等可视化组件。
4
4
 
5
5
  ## 安装
6
6
 
@@ -8,12 +8,18 @@ Vue 3 组件库,提供思维导图和 AI 会话渲染组件。
8
8
  pnpm add @deep-eye/core
9
9
  ```
10
10
 
11
- ## AI Conversation
11
+ ## 组件
12
12
 
13
- `AiConversation` 渲染整个会话,`ChatMessage` 渲染单条消息,`ChatActionbar` 渲染助手回复完成后的操作栏。
13
+ ### AI Conversation
14
+
15
+ 完整的 AI 会话渲染方案,支持流式输出、多模态内容、用户交互表单等。
16
+
17
+ #### AiConversation
18
+
19
+ 渲染完整的会话列表,内置自动滚动、流式动画和操作栏。
14
20
 
15
21
  ```vue
16
- <script setup lang="ts">
22
+ <script setup lang=”ts”>
17
23
  import { ref } from 'vue'
18
24
  import {
19
25
  AiConversation,
@@ -28,18 +34,18 @@ const messages = ref<ConversationMessage[]>([
28
34
  ])
29
35
 
30
36
  function saveReply(message: ConversationMessage): void {
31
- // 保存业务数据
37
+ console.log('保存消息', message)
32
38
  }
33
39
 
34
40
  function onCopy(payload: ChatActionbarCopyPayload): void {
35
- // payload.message 是来源消息,payload.text 是复制的文本
41
+ console.log('复制内容', payload.text)
36
42
  }
37
43
  </script>
38
44
 
39
45
  <template>
40
- <AiConversation :messages="messages" auto-scroll="smart" @copy="onCopy">
41
- <template #assistant-actionbar="{ message }">
42
- <button type="button" @click="saveReply(message)">保存</button>
46
+ <AiConversation :messages=”messages auto-scroll=”smart @copy=”onCopy”>
47
+ <template #assistant-actionbar=”{ message }”>
48
+ <button type=”button @click=”saveReply(message)”>保存</button>
43
49
  </template>
44
50
  </AiConversation>
45
51
  </template>
@@ -47,26 +53,97 @@ function onCopy(payload: ChatActionbarCopyPayload): void {
47
53
 
48
54
  已完成的助手回复会显示默认复制操作。`#assistant-actionbar`、`ChatMessage` 的 `#actionbar` 与 `ChatActionbar` 默认插槽均为追加插槽,不会替换复制操作;流式输出期间不显示操作栏。
49
55
 
56
+ **流式渲染**
57
+
58
+ 将后端的 OpenAI 兼容 `chat.completion.chunk` SSE 响应交给 `useConversationStream().consume(response)`,即可得到可传入 `AiConversation` 的消息列表。渲染会隐藏 `LLM Running`、`🛠️` 和 `<summary>` 运行标记,但不改写原始消息。
59
+
60
+ **用户交互表单**
61
+
62
+ AskUserForm 使用 `ASK_USER_FORM_SYSTEM_PROMPT`;单选自动提交,多选点击”确认”,`required=false` 可跳过。
63
+
64
+ #### ChatSender
65
+
66
+ 支持文本输入、文件上传、语音录音和截图的聊天输入框。
67
+
68
+ ```vue
69
+ <script setup lang=”ts”>
70
+ import { ref } from 'vue'
71
+ import { ChatSender } from '@deep-eye/core'
72
+
73
+ const message = ref('')
74
+
75
+ function handleSend(content: string, files?: File[]) {
76
+ console.log('发送消息', content, files)
77
+ message.value = ''
78
+ }
79
+ </script>
80
+
81
+ <template>
82
+ <ChatSender
83
+ v-model=”message”
84
+ :show-screenshot=”true”
85
+ placeholder=”输入消息...”
86
+ @send=”handleSend”
87
+ />
88
+ </template>
89
+ ```
90
+
91
+ **文件附件功能**
92
+
93
+ - 支持多文件上传,文件累加而不是替换
94
+ - 图片文件显示为 120x120 缩略图卡片
95
+ - 非图片文件显示文件名、扩展名标签和大小
96
+ - 鼠标悬浮显示删除按钮
97
+
98
+ **截图功能**
99
+
100
+ 设置 `show-screenshot` 启用截图选项。使用浏览器原生 `getDisplayMedia` API,支持截取屏幕、窗口或标签页,截图后自动添加到附件列表。
101
+
102
+ **语音录音**
103
+
104
+ 内置语音录音功能,支持点击录音和长按录音两种模式,使用 Web Speech API 自动转换为文本。
105
+
106
+ #### 组件导出
107
+
50
108
  | 组件 | 用途 |
51
109
  | ---------------- | --------------------------------------------------------- |
52
110
  | `AiConversation` | 会话列表、自动滚动、AskUserForm 与 `#assistant-actionbar` |
53
111
  | `ChatMessage` | 单条 `ConversationMessage`,支持 `#actionbar` 与 `@copy` |
54
112
  | `ChatActionbar` | 默认复制操作,支持默认插槽追加操作与 `@copy` |
113
+ | `ChatSender` | 聊天输入框,支持文本、文件、语音和截图 |
55
114
 
56
- 将后端的 OpenAI 兼容 `chat.completion.chunk` SSE 响应交给 `useConversationStream().consume(response)`,即可得到可传入 `AiConversation` 的消息列表。AskUserForm 使用 `ASK_USER_FORM_SYSTEM_PROMPT`;单选自动提交,多选点击“确认”,`required=false` 可跳过。
115
+ ### D3MindMap
57
116
 
58
- ## D3MindMap
117
+ 基于 D3.js 的思维导图可视化组件。
59
118
 
60
119
  ```vue
61
- <script setup lang="ts">
120
+ <script setup lang=”ts”>
62
121
  import { D3MindMap } from '@deep-eye/core'
122
+ import type { MindMapNode } from '@deep-eye/core'
123
+
124
+ const data: MindMapNode = {
125
+ name: '根节点',
126
+ children: [
127
+ { name: '子节点 1' },
128
+ { name: '子节点 2' },
129
+ ],
130
+ }
63
131
  </script>
64
132
 
65
- <D3MindMap :data="data" height="600px" show-toolbar />
133
+ <template>
134
+ <D3MindMap :data=”data” height=”600px” show-toolbar />
135
+ </template>
66
136
  ```
67
137
 
68
138
  ## Changelog
69
139
 
70
140
  每个功能版本的用户可见变化记录在 [CHANGELOG.md](./CHANGELOG.md)。发布前在文件顶部新增版本,并使用 `Added`、`Changed`、`Fixed` 或 `Removed` 分类。
71
141
 
72
- Node >= 22 · Vue >= 3.5 · MIT
142
+ ## 技术要求
143
+
144
+ - Node >= 22
145
+ - Vue >= 3.5
146
+
147
+ ## License
148
+
149
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"AiConversation.vue.d.ts","sourceRoot":"","sources":["../../../src/components/chat/AiConversation.vue"],"names":[],"mappings":"AAuqBA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EAExB,mBAAmB,EAEnB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAUhB,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,MAAM,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAA;IAClC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAC9F,CAAC;AAkqBF,QAAA,MAAM,UAAU;;;;;;;;6EAKd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"AiConversation.vue.d.ts","sourceRoot":"","sources":["../../../src/components/chat/AiConversation.vue"],"names":[],"mappings":"AAiqBA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EAExB,mBAAmB,EAEnB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAUhB,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,MAAM,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAA;IAClC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAC9F,CAAC;AAkqBF,QAAA,MAAM,UAAU;;;;;;;;6EAKd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { ChatSenderProps, AiConversationProps, ConversationMessage, ConversationUiAction } from './types';
2
+ import type { Ref } from 'vue';
3
+ interface Props {
4
+ messages: readonly ConversationMessage[] | Ref<readonly ConversationMessage[]>;
5
+ showSidebar?: boolean;
6
+ sidebarWidth?: string | number;
7
+ senderConfig?: Partial<ChatSenderProps>;
8
+ conversationConfig?: Partial<AiConversationProps>;
9
+ }
10
+ type __VLS_Slots = {
11
+ sidebar?: (props: {
12
+ artifact: ConversationUiAction | null;
13
+ }) => unknown;
14
+ 'sender-prepend'?: () => unknown;
15
+ 'sender-append'?: () => unknown;
16
+ empty?: () => unknown;
17
+ 'user-avatar'?: () => unknown;
18
+ 'assistant-avatar'?: () => unknown;
19
+ 'assistant-actionbar'?: (props: {
20
+ message: unknown;
21
+ copied: boolean;
22
+ }) => unknown;
23
+ };
24
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
25
+ copy: (payload: unknown) => any;
26
+ action: (payload: ConversationUiAction) => any;
27
+ send: (content: string, files?: File[] | undefined) => any;
28
+ "artifact-open": (payload: ConversationUiAction) => any;
29
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
30
+ onCopy?: ((payload: unknown) => any) | undefined;
31
+ onAction?: ((payload: ConversationUiAction) => any) | undefined;
32
+ onSend?: ((content: string, files?: File[] | undefined) => any) | undefined;
33
+ "onArtifact-open"?: ((payload: ConversationUiAction) => any) | undefined;
34
+ }>, {
35
+ showSidebar: boolean;
36
+ sidebarWidth: string | number;
37
+ senderConfig: Partial<ChatSenderProps>;
38
+ conversationConfig: Partial<AiConversationProps>;
39
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
40
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
41
+ declare const _default: typeof __VLS_export;
42
+ export default _default;
43
+ type __VLS_WithSlots<T, S> = T & {
44
+ new (): {
45
+ $slots: S;
46
+ };
47
+ };
48
+ //# sourceMappingURL=ChatBot.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatBot.vue.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatBot.vue"],"names":[],"mappings":"AAwZA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAI9B,UAAU,KAAK;IACb,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GAAG,GAAG,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAA;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAClD;AAUD,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAA;IACvE,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,OAAO,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAA;IAClC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAClF,CAAC;AA8TF,QAAA,MAAM,UAAU;;;;;;;;;;;iBApVA,OAAO;kBACN,MAAM,GAAG,MAAM;kBACf,OAAO,CAAC,eAAe,CAAC;wBAClB,OAAO,CAAC,mBAAmB,CAAC;6EAqVjD,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { PropType } from 'vue';
2
+ import type { AssistantTraceEntry } from '../presentation';
3
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ entries: {
5
+ type: PropType<AssistantTraceEntry[]>;
6
+ default: () => never[];
7
+ };
8
+ isStreaming: {
9
+ type: BooleanConstructor;
10
+ default: boolean;
11
+ };
12
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
13
+ entries: {
14
+ type: PropType<AssistantTraceEntry[]>;
15
+ default: () => never[];
16
+ };
17
+ isStreaming: {
18
+ type: BooleanConstructor;
19
+ default: boolean;
20
+ };
21
+ }>> & Readonly<{}>, {
22
+ entries: AssistantTraceEntry[];
23
+ isStreaming: boolean;
24
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
25
+ declare const _default: typeof __VLS_export;
26
+ export default _default;
27
+ //# sourceMappingURL=AssistantTrace.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssistantTrace.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/AssistantTrace.vue"],"names":[],"mappings":"AA4UA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AA8M1D,QAAA,MAAM,YAAY;;cAGC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;;;;;;;;;cAA/B,QAAQ,CAAC,mBAAmB,EAAE,CAAC;;;;;;;;;;4EAQhD,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,6 +1,8 @@
1
1
  import type { ChatActionbarCopyPayload, ConversationMessage } from '../types';
2
2
  type __VLS_Props = {
3
3
  message: ConversationMessage;
4
+ /** Visible reply text. Defaults to message.content when omitted. */
5
+ text?: string;
4
6
  };
5
7
  type __VLS_Slots = {
6
8
  default?: (props: {
@@ -1 +1 @@
1
- {"version":3,"file":"ChatActionbar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/ChatActionbar.vue"],"names":[],"mappings":"AA2LA,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAI7E,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,mBAAmB,CAAA;CAC7B,CAAC;AAGF,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAChF,CAAC;AAwIF,QAAA,MAAM,UAAU;;;;kFAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"ChatActionbar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/ChatActionbar.vue"],"names":[],"mappings":"AA+MA,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAI7E,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAC;AAGF,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAChF,CAAC;AAyIF,QAAA,MAAM,UAAU;;;;kFAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { PropType } from 'vue';
2
- import type { ChatActionbarCopyPayload, ConversationMessage, ConversationTheme } from '../types';
2
+ import type { ChatActionbarCopyPayload, ConversationMessage, ConversationTheme, ConversationUiAction } from '../types';
3
3
  type __VLS_Slots = {
4
4
  'user-avatar'?: () => unknown;
5
5
  'assistant-avatar'?: () => unknown;
@@ -13,24 +13,46 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
13
13
  type: PropType<ConversationMessage>;
14
14
  required: true;
15
15
  };
16
- toolMessagesById: PropType<ReadonlyMap<string, ConversationMessage>>;
17
- theme: PropType<ConversationTheme>;
18
- userAvatar: StringConstructor;
19
- assistantAvatar: StringConstructor;
16
+ theme: {
17
+ type: PropType<ConversationTheme>;
18
+ default: undefined;
19
+ };
20
+ userAvatar: {
21
+ type: StringConstructor;
22
+ default: undefined;
23
+ };
24
+ assistantAvatar: {
25
+ type: StringConstructor;
26
+ default: undefined;
27
+ };
20
28
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
29
  copy: (payload: ChatActionbarCopyPayload) => any;
30
+ action: (payload: ConversationUiAction) => any;
22
31
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
32
  message: {
24
33
  type: PropType<ConversationMessage>;
25
34
  required: true;
26
35
  };
27
- toolMessagesById: PropType<ReadonlyMap<string, ConversationMessage>>;
28
- theme: PropType<ConversationTheme>;
29
- userAvatar: StringConstructor;
30
- assistantAvatar: StringConstructor;
36
+ theme: {
37
+ type: PropType<ConversationTheme>;
38
+ default: undefined;
39
+ };
40
+ userAvatar: {
41
+ type: StringConstructor;
42
+ default: undefined;
43
+ };
44
+ assistantAvatar: {
45
+ type: StringConstructor;
46
+ default: undefined;
47
+ };
31
48
  }>> & Readonly<{
32
49
  onCopy?: ((payload: ChatActionbarCopyPayload) => any) | undefined;
33
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
50
+ onAction?: ((payload: ConversationUiAction) => any) | undefined;
51
+ }>, {
52
+ theme: ConversationTheme;
53
+ userAvatar: string;
54
+ assistantAvatar: string;
55
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
34
56
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
35
57
  declare const _default: typeof __VLS_export;
36
58
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessage.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/ChatMessage.vue"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAiBhG,KAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAA;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAClF,CAAC;AAoFF,QAAA,MAAM,UAAU;;cAII,QAAQ,CAAC,mBAAmB,CAAC;;;sBAGnB,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;WAC7D,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;cAJ1B,QAAQ,CAAC,mBAAmB,CAAC;;;sBAGnB,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;WAC7D,QAAQ,CAAC,iBAAiB,CAAC;;;;;iFAI5C,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"ChatMessage.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/ChatMessage.vue"],"names":[],"mappings":"AA6DA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,UAAU,CAAA;AAyBjB,KAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAA;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAClF,CAAC;AA+FF,QAAA,MAAM,UAAU;;cAII,QAAQ,CAAC,mBAAmB,CAAC;;;;cAI7B,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;cAJ3B,QAAQ,CAAC,mBAAmB,CAAC;;;;cAI7B,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;4EAY7C,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1,58 @@
1
+ import type { Component } from 'vue';
2
+ interface AttachmentMenuItem {
3
+ id: string;
4
+ label: string;
5
+ icon: string | Component;
6
+ disabled?: boolean;
7
+ }
8
+ interface Props {
9
+ placeholder?: string;
10
+ disabled?: boolean;
11
+ showAttachment?: boolean;
12
+ showToolbar?: boolean;
13
+ maxRows?: number;
14
+ modelValue?: string;
15
+ showScreenshot?: boolean;
16
+ customMenuItems?: AttachmentMenuItem[];
17
+ }
18
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
+ send: (content: string, files?: File[] | undefined) => any;
20
+ "update:modelValue": (value: string) => any;
21
+ "voice-click": () => any;
22
+ "voice-record": () => any;
23
+ "voice-start": () => any;
24
+ "voice-stop": () => any;
25
+ "voice-cancel": () => any;
26
+ "audio-device-change": (deviceIndex: number) => any;
27
+ "audio-transcript": (text: string) => any;
28
+ screenshot: () => any;
29
+ "menu-item-click": (itemId: string) => any;
30
+ "attachment-menu-open": () => any;
31
+ "attachment-menu-close": () => any;
32
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
33
+ onSend?: ((content: string, files?: File[] | undefined) => any) | undefined;
34
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
35
+ "onVoice-click"?: (() => any) | undefined;
36
+ "onVoice-record"?: (() => any) | undefined;
37
+ "onVoice-start"?: (() => any) | undefined;
38
+ "onVoice-stop"?: (() => any) | undefined;
39
+ "onVoice-cancel"?: (() => any) | undefined;
40
+ "onAudio-device-change"?: ((deviceIndex: number) => any) | undefined;
41
+ "onAudio-transcript"?: ((text: string) => any) | undefined;
42
+ onScreenshot?: (() => any) | undefined;
43
+ "onMenu-item-click"?: ((itemId: string) => any) | undefined;
44
+ "onAttachment-menu-open"?: (() => any) | undefined;
45
+ "onAttachment-menu-close"?: (() => any) | undefined;
46
+ }>, {
47
+ showToolbar: boolean;
48
+ disabled: boolean;
49
+ placeholder: string;
50
+ showAttachment: boolean;
51
+ maxRows: number;
52
+ modelValue: string;
53
+ showScreenshot: boolean;
54
+ customMenuItems: AttachmentMenuItem[];
55
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
56
+ declare const _default: typeof __VLS_export;
57
+ export default _default;
58
+ //# sourceMappingURL=ChatSender.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatSender.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/ChatSender.vue"],"names":[],"mappings":"AAy/DA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAGpC,UAAU,kBAAkB;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,KAAK;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACvC;AAg7CD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAr7CF,OAAO;cAFV,OAAO;iBADJ,MAAM;oBAEH,OAAO;aAEd,MAAM;gBACH,MAAM;oBACF,OAAO;qBACN,kBAAkB,EAAE;6EAq7CtC,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,5 +1,5 @@
1
1
  import type { PropType } from 'vue';
2
- import type { ChatActionbarCopyPayload, ConversationMessage, ConversationTheme } from '../types';
2
+ import type { ChatActionbarCopyPayload, ConversationMessage, ConversationTheme, ConversationUiAction } from '../types';
3
3
  type __VLS_Slots = {
4
4
  'user-avatar'?: () => unknown;
5
5
  'assistant-avatar'?: () => unknown;
@@ -13,24 +13,46 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
13
13
  type: PropType<ConversationMessage>;
14
14
  required: true;
15
15
  };
16
- toolMessagesById: PropType<ReadonlyMap<string, ConversationMessage>>;
17
- theme: PropType<ConversationTheme>;
18
- userAvatar: StringConstructor;
19
- assistantAvatar: StringConstructor;
16
+ theme: {
17
+ type: PropType<ConversationTheme>;
18
+ default: undefined;
19
+ };
20
+ userAvatar: {
21
+ type: StringConstructor;
22
+ default: undefined;
23
+ };
24
+ assistantAvatar: {
25
+ type: StringConstructor;
26
+ default: undefined;
27
+ };
20
28
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
29
  copy: (payload: ChatActionbarCopyPayload) => any;
30
+ action: (payload: ConversationUiAction) => any;
22
31
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
32
  message: {
24
33
  type: PropType<ConversationMessage>;
25
34
  required: true;
26
35
  };
27
- toolMessagesById: PropType<ReadonlyMap<string, ConversationMessage>>;
28
- theme: PropType<ConversationTheme>;
29
- userAvatar: StringConstructor;
30
- assistantAvatar: StringConstructor;
36
+ theme: {
37
+ type: PropType<ConversationTheme>;
38
+ default: undefined;
39
+ };
40
+ userAvatar: {
41
+ type: StringConstructor;
42
+ default: undefined;
43
+ };
44
+ assistantAvatar: {
45
+ type: StringConstructor;
46
+ default: undefined;
47
+ };
31
48
  }>> & Readonly<{
32
49
  onCopy?: ((payload: ChatActionbarCopyPayload) => any) | undefined;
33
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
50
+ onAction?: ((payload: ConversationUiAction) => any) | undefined;
51
+ }>, {
52
+ theme: ConversationTheme;
53
+ userAvatar: string;
54
+ assistantAvatar: string;
55
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
34
56
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
35
57
  declare const _default: typeof __VLS_export;
36
58
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageBubble.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/MessageBubble.vue"],"names":[],"mappings":"AA+WA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAInC,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,UAAU,CAAA;AAgBjB,KAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAA;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAClF,CAAC;AAkVF,QAAA,MAAM,UAAU;;cAII,QAAQ,CAAC,mBAAmB,CAAC;;;sBAGnB,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;WAC7D,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;cAJ1B,QAAQ,CAAC,mBAAmB,CAAC;;;sBAGnB,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;WAC7D,QAAQ,CAAC,iBAAiB,CAAC;;;;;iFAI5C,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"MessageBubble.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/MessageBubble.vue"],"names":[],"mappings":"AA2gBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAKnC,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,UAAU,CAAA;AAwBjB,KAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAA;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;CAClF,CAAC;AA6YF,QAAA,MAAM,UAAU;;cAII,QAAQ,CAAC,mBAAmB,CAAC;;;;cAI7B,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;cAJ3B,QAAQ,CAAC,mBAAmB,CAAC;;;;cAI7B,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;4EAY7C,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenGenUIToolRenderer.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/OpenGenUIToolRenderer.vue"],"names":[],"mappings":"AAqSA,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAkPxC,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"OpenGenUIToolRenderer.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/OpenGenUIToolRenderer.vue"],"names":[],"mappings":"AAgTA,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AA+PxC,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,3 +1,4 @@
1
+ import type { ConversationUiAction } from '../types';
1
2
  type __VLS_Props = {
2
3
  content: string;
3
4
  isStreaming?: boolean;
@@ -6,7 +7,11 @@ type __VLS_Props = {
6
7
  /** user 气泡内用 compact,去掉段落边距以利垂直居中 */
7
8
  density?: 'default' | 'compact';
8
9
  };
9
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ action: (payload: ConversationUiAction) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onAction?: ((payload: ConversationUiAction) => any) | undefined;
14
+ }>, {
10
15
  density: "default" | "compact";
11
16
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
17
  declare const _default: typeof __VLS_export;
@@ -1 +1 @@
1
- {"version":3,"file":"TextPartRenderer.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/TextPartRenderer.vue"],"names":[],"mappings":"AAiCA,KAAK,WAAW,GAAG;IACf,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qCAAqC;IACrC,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAChC,CAAC;AAwCJ,QAAA,MAAM,YAAY;aAzCJ,SAAS,GAAG,SAAS;6EA4CjC,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"TextPartRenderer.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/TextPartRenderer.vue"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAIpD,KAAK,WAAW,GAAG;IACf,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qCAAqC;IACrC,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAChC,CAAC;AA+DJ,QAAA,MAAM,YAAY;;;;;aAhEJ,SAAS,GAAG,SAAS;6EAoEjC,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,5 +1,6 @@
1
1
  export { default as ChatActionbar } from './ChatActionbar.vue';
2
2
  export { default as ChatMessage } from './ChatMessage.vue';
3
+ export { default as ChatSender } from './ChatSender.vue';
3
4
  export { default as MessageBubble } from './MessageBubble.vue';
4
5
  export { default as TextPartRenderer } from './TextPartRenderer.vue';
5
6
  export { default as ToolCallPart } from './ToolCallPart.vue';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,wCAAwC,CAAA;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,wCAAwC,CAAA;AACpG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
@@ -1,8 +1,7 @@
1
- import type { ConversationMessage, ToolCallStatus, UseConversationReturn } from '../types';
1
+ import type { ConversationMessage, UseConversationReturn } from '../types';
2
2
  /**
3
3
  * Holds render-only conversation state. It deliberately owns no transport,
4
4
  * retry, input, or persistence concerns.
5
5
  */
6
6
  export declare function useConversation(initialMessages?: ConversationMessage[]): UseConversationReturn;
7
- export declare function getToolCallStatus(message: ConversationMessage | undefined): ToolCallStatus;
8
7
  //# sourceMappingURL=useConversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useConversation.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/composables/useConversation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,mBAAmB,EAKnB,cAAc,EACd,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAEjB;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,eAAe,GAAE,mBAAmB,EAAO,GAC1C,qBAAqB,CAgKvB;AA8ED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,GAAG,cAAc,CAE1F"}
1
+ {"version":3,"file":"useConversation.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/composables/useConversation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,mBAAmB,EAGnB,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAEjB;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,eAAe,GAAE,mBAAmB,EAAO,GAC1C,qBAAqB,CAoFvB"}
@@ -1,19 +1,9 @@
1
1
  export { default as AiConversation } from './AiConversation.vue';
2
2
  export { default as ChatActionbar } from './components/ChatActionbar.vue';
3
3
  export { default as ChatMessage } from './components/ChatMessage.vue';
4
- export { default as ChartToolRenderer } from './components/ChartToolRenderer.vue';
5
- export { default as CodeToolRenderer } from './components/CodeToolRenderer.vue';
6
- export { default as MindMapToolRenderer } from './components/MindMapToolRenderer.vue';
7
- export { default as OpenGenerativeUiChartRenderer } from './components/OpenGenerativeUiChartRenderer.vue';
8
- export { default as OpenGenerativeUiPlanRenderer } from './components/OpenGenerativeUiPlanRenderer.vue';
9
- export { default as OpenGenerativeUiScheduleRenderer } from './components/OpenGenerativeUiScheduleRenderer.vue';
10
- export { default as OpenGenerativeUiThemeRenderer } from './components/OpenGenerativeUiThemeRenderer.vue';
11
- export { default as OpenGenUIToolRenderer } from './components/OpenGenUIToolRenderer.vue';
12
- export { default as SearchToolRenderer } from './components/SearchToolRenderer.vue';
13
- export { ASK_USER_FORM_SYSTEM_PROMPT } from './mdoc/builtInRegistry';
14
- export type { AiConversationExpose, AiConversationProps, AutoScrollMode, ChatActionbarCopyPayload, ChatMessageProps, ConversationAskFormAnswer, ConversationStreamConsumeOptions, ConversationStreamInput, ConversationStreamSource, ConversationStreamStatus, ConversationMessage, ConversationRole, ConversationDelta, ConversationTheme, ConversationUiAction, ConversationToolCall, ConversationToolCallDelta, GenerativeChartOutput, OpenGenerativeUiBarChartOutput, OpenGenerativeUiChartDatum, OpenGenerativeUiMeetingTimePickerOutput, OpenGenerativeUiOutput, OpenGenerativeUiPieChartOutput, OpenGenerativeUiPlanCardOutput, OpenGenerativeUiRenderStatus, OpenGenerativeUiTimeSlot, OpenGenerativeUiToggleThemeInput, OpenGenerativeUiToolReasoningOutput, OpenAiChatCompletionChoice, OpenAiChatCompletionChunk, OpenAiChatCompletionDelta, OpenAiChatCompletionToolCallDelta, OpenGenUIContent, PlanVisualizationOutput, ScheduleTimeOutput, StandaloneActivityContent, ToolCallStatus, ToolRenderer, ToolRendererProps, UseConversationReturn, UseConversationStreamReturn, } from './types';
4
+ export { default as ChatSender } from './components/ChatSender.vue';
5
+ export { default as ChatBot } from './ChatBot.vue';
6
+ export { ARTIFACT_BLOCK_SYSTEM_PROMPT, ASK_USER_FORM_SYSTEM_PROMPT } from './mdoc/builtInRegistry';
7
+ export type { AiConversationExpose, AiConversationProps, AutoScrollMode, ChatActionbarCopyPayload, ChatBotProps, ChatMessageProps, ChatSenderProps, ChatSenderTheme, ConversationAskFormAnswer, ConversationStreamConsumeOptions, ConversationStreamInput, ConversationStreamSource, ConversationStreamStatus, ConversationMessage, ConversationRole, ConversationDelta, ConversationTheme, ConversationUiAction, OpenAiChatCompletionChoice, OpenAiChatCompletionChunk, OpenAiChatCompletionDelta, UseConversationReturn, UseConversationStreamReturn, } from './types';
15
8
  export { useConversation, useConversationStream } from './composables';
16
- export { registerToolRenderer } from './toolRenderers';
17
- export { OPEN_GENERATIVE_UI_ACTIVITY_TYPE, OPEN_GENERATIVE_UI_OUTPUT_CATALOG, OPEN_GENERATIVE_UI_OUTPUT_NAMES, } from './openGenerativeUi';
18
- export type { OpenGenerativeUiOutputCatalogEntry, OpenGenerativeUiOutputKind, OpenGenerativeUiOutputName, } from './openGenerativeUi';
19
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,gDAAgD,CAAA;AACzG,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AACvG,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,mDAAmD,CAAA;AAC/G,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,gDAAgD,CAAA;AACzG,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AACzF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAEnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAEpE,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,yBAAyB,EACzB,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B,EAC9B,0BAA0B,EAC1B,uCAAuC,EACvC,sBAAsB,EACtB,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,gCAAgC,EAChC,mCAAmC,EACnC,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,iCAAiC,EACjC,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,kCAAkC,EAClC,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAElG,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { ConversationUiAction } from '../types';
2
+ import type { MdocComponentNode } from './parser';
3
+ type __VLS_Props = {
4
+ node: MdocComponentNode;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ action: (payload: ConversationUiAction) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onAction?: ((payload: ConversationUiAction) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
13
+ //# sourceMappingURL=ArtifactBlock.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactBlock.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/mdoc/ArtifactBlock.vue"],"names":[],"mappings":"AAyTA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAIjD,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AA2K/C,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}