@blueking/chat-x 0.0.45-beta.5 → 0.0.45-beta.7

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 (138) hide show
  1. package/README.md +1 -1
  2. package/dist/ag-ui/types/constants.d.ts +0 -16
  3. package/dist/ag-ui/types/contents.d.ts +0 -2
  4. package/dist/ag-ui/types/index.d.ts +0 -2
  5. package/dist/ag-ui/types/messages.d.ts +0 -2
  6. package/dist/components/chat-content/flow-agent-content/flow-agent-content.vue.d.ts +0 -3
  7. package/dist/components/chat-content/flow-agent-content/use-flow-agent.d.ts +0 -4
  8. package/dist/components/chat-input/ai-slash-input/command.d.ts +2 -1
  9. package/dist/components/chat-input/ai-slash-input/constants.d.ts +4 -0
  10. package/dist/components/chat-input/chat-input.vue.d.ts +8 -14
  11. package/dist/components/chat-input/input-attachment/input-attachment.vue.d.ts +0 -1
  12. package/dist/components/chat-message/activity-message/activity-message.vue.d.ts +1 -4
  13. package/dist/components/chat-message/assistant-message/assistant-message.vue.d.ts +1 -1
  14. package/dist/components/chat-message/message-container/message-container.vue.d.ts +7 -14
  15. package/dist/components/chat-message/message-render/message-render.vue.d.ts +0 -4
  16. package/dist/components/index.d.ts +2 -3
  17. package/dist/composables/use-global-config.d.ts +0 -3
  18. package/dist/composables/use-message-group.d.ts +823 -2609
  19. package/dist/icons/index.d.ts +0 -1
  20. package/dist/index.css +1 -1
  21. package/dist/index.js +1935 -2537
  22. package/dist/index.js.map +1 -1
  23. package/dist/lang/lang.d.ts +2 -34
  24. package/dist/mcp/generated/docs/activity-message.md +7 -21
  25. package/dist/mcp/generated/docs/ai-image.md +4 -9
  26. package/dist/mcp/generated/docs/ai-loading.md +6 -11
  27. package/dist/mcp/generated/docs/ai-selection.md +5 -10
  28. package/dist/mcp/generated/docs/animation-text.md +4 -9
  29. package/dist/mcp/generated/docs/assistant-message.md +5 -10
  30. package/dist/mcp/generated/docs/chat-container.md +19 -173
  31. package/dist/mcp/generated/docs/chat-input.md +10 -78
  32. package/dist/mcp/generated/docs/cite-content.md +3 -8
  33. package/dist/mcp/generated/docs/code-content.md +4 -9
  34. package/dist/mcp/generated/docs/common-error-content.md +5 -10
  35. package/dist/mcp/generated/docs/constants.md +3 -68
  36. package/dist/mcp/generated/docs/content-render.md +5 -10
  37. package/dist/mcp/generated/docs/delete-tool.md +4 -9
  38. package/dist/mcp/generated/docs/desc-panel.md +4 -9
  39. package/dist/mcp/generated/docs/execution-summary.md +5 -10
  40. package/dist/mcp/generated/docs/file-content.md +4 -9
  41. package/dist/mcp/generated/docs/file-upload-btn.md +5 -10
  42. package/dist/mcp/generated/docs/highlight-keyword.md +5 -10
  43. package/dist/mcp/generated/docs/image-content.md +4 -9
  44. package/dist/mcp/generated/docs/image-preview-group.md +4 -9
  45. package/dist/mcp/generated/docs/image-preview.md +5 -10
  46. package/dist/mcp/generated/docs/info-message.md +2 -7
  47. package/dist/mcp/generated/docs/key-value-content.md +4 -9
  48. package/dist/mcp/generated/docs/latex-content.md +4 -9
  49. package/dist/mcp/generated/docs/loading-message.md +6 -11
  50. package/dist/mcp/generated/docs/markdown-container.md +1 -1
  51. package/dist/mcp/generated/docs/markdown-content.md +8 -13
  52. package/dist/mcp/generated/docs/markdown-latex.md +3 -3
  53. package/dist/mcp/generated/docs/markdown-mermaid.md +3 -3
  54. package/dist/mcp/generated/docs/mermaid-content.md +4 -9
  55. package/dist/mcp/generated/docs/message-container.md +11 -69
  56. package/dist/mcp/generated/docs/message-render.md +11 -23
  57. package/dist/mcp/generated/docs/message-tools.md +5 -10
  58. package/dist/mcp/generated/docs/messages.md +11 -75
  59. package/dist/mcp/generated/docs/overflow-tips.md +4 -4
  60. package/dist/mcp/generated/docs/reasoning-message.md +5 -10
  61. package/dist/mcp/generated/docs/reference-content.md +5 -10
  62. package/dist/mcp/generated/docs/scroll-btn.md +3 -8
  63. package/dist/mcp/generated/docs/selection-footer.md +4 -9
  64. package/dist/mcp/generated/docs/shortcut-btn.md +5 -10
  65. package/dist/mcp/generated/docs/shortcut-btns.md +5 -10
  66. package/dist/mcp/generated/docs/shortcut-render.md +5 -10
  67. package/dist/mcp/generated/docs/text-content.md +4 -9
  68. package/dist/mcp/generated/docs/theme.md +4 -50
  69. package/dist/mcp/generated/docs/tool-btn.md +4 -9
  70. package/dist/mcp/generated/docs/tool-message.md +5 -10
  71. package/dist/mcp/generated/docs/toolcall-render.md +5 -10
  72. package/dist/mcp/generated/docs/use-animation-text.md +4 -4
  73. package/dist/mcp/generated/docs/use-clipboard.md +3 -3
  74. package/dist/mcp/generated/docs/use-command-selection.md +1 -1
  75. package/dist/mcp/generated/docs/use-custom-tab.md +1 -1
  76. package/dist/mcp/generated/docs/use-full-screen.md +3 -3
  77. package/dist/mcp/generated/docs/use-global-config.md +5 -20
  78. package/dist/mcp/generated/docs/use-menu-keydown.md +1 -1
  79. package/dist/mcp/generated/docs/use-message-group.md +9 -40
  80. package/dist/mcp/generated/docs/use-observer-visible-list.md +1 -1
  81. package/dist/mcp/generated/docs/user-feedback.md +3 -8
  82. package/dist/mcp/generated/docs/user-message.md +13 -18
  83. package/dist/mcp/generated/index.json +560 -1103
  84. package/dist/mcp/index.js +0 -0
  85. package/dist/mcp/server.js +1 -1
  86. package/dist/mcp/server.js.map +1 -1
  87. package/dist/mcp/tools/list-components.d.ts +6 -7
  88. package/dist/mcp/tools/list-components.js +29 -23
  89. package/dist/mcp/tools/list-components.js.map +1 -1
  90. package/dist/mcp/tools/search-docs.js +1 -1
  91. package/dist/mcp/tools/search-docs.js.map +1 -1
  92. package/dist/mcp/utils/doc-loader.d.ts +1 -1
  93. package/dist/types/editor.d.ts +1 -0
  94. package/package.json +21 -23
  95. package/dist/ag-ui/types/interrupt.d.ts +0 -137
  96. package/dist/ag-ui/types/schema.d.ts +0 -42
  97. package/dist/components/ai-questions/questions-container.vue.d.ts +0 -3
  98. package/dist/components/ai-questions/selection-question.vue.d.ts +0 -3
  99. package/dist/components/chat-content/flow-agent-content/use-flow-node-actions.d.ts +0 -32
  100. package/dist/components/chat-content/index.d.ts +0 -2
  101. package/dist/components/chat-input/input-info-alert.vue.d.ts +0 -6
  102. package/dist/components/chat-message/interrupt-message/index.d.ts +0 -2
  103. package/dist/components/chat-message/interrupt-message/interrupt-message.vue.d.ts +0 -17
  104. package/dist/components/chat-message/interrupt-message/tool-approval-card.vue.d.ts +0 -8
  105. package/dist/components/chat-message/interrupt-message/user-question/index.d.ts +0 -5
  106. package/dist/components/chat-message/interrupt-message/user-question/use-user-question.d.ts +0 -35
  107. package/dist/components/chat-message/interrupt-message/user-question/user-question-answered-card.vue.d.ts +0 -25
  108. package/dist/components/chat-message/interrupt-message/user-question/user-question-card.vue.d.ts +0 -25
  109. package/dist/components/chat-message/interrupt-message/user-question/user-question-choice.vue.d.ts +0 -13
  110. package/dist/components/chat-message/interrupt-message/user-question/user-question-option.vue.d.ts +0 -17
  111. package/dist/icons/interrupt.d.ts +0 -24
  112. package/dist/mcp/generated/docs/activity-layout.md +0 -138
  113. package/dist/mcp/generated/docs/ai-prompt-list.md +0 -42
  114. package/dist/mcp/generated/docs/ai-slash-editor.md +0 -43
  115. package/dist/mcp/generated/docs/ai-slash-input.md +0 -43
  116. package/dist/mcp/generated/docs/ai-slash-menu.md +0 -42
  117. package/dist/mcp/generated/docs/detail-section.md +0 -93
  118. package/dist/mcp/generated/docs/flow-agent-content.md +0 -252
  119. package/dist/mcp/generated/docs/flow-agent-node-detail.md +0 -240
  120. package/dist/mcp/generated/docs/input-attachment.md +0 -43
  121. package/dist/mcp/generated/docs/input-info-alert.md +0 -42
  122. package/dist/mcp/generated/docs/interrupt-message.md +0 -204
  123. package/dist/mcp/generated/docs/interrupt.md +0 -354
  124. package/dist/mcp/generated/docs/knowledge-rag-content.md +0 -126
  125. package/dist/mcp/generated/docs/message-loading.md +0 -120
  126. package/dist/mcp/generated/docs/preview-toolbar.md +0 -42
  127. package/dist/mcp/generated/docs/questions-container.md +0 -88
  128. package/dist/mcp/generated/docs/reference-doc-content.md +0 -112
  129. package/dist/mcp/generated/docs/schema.md +0 -93
  130. package/dist/mcp/generated/docs/selection-question.md +0 -91
  131. package/dist/mcp/generated/docs/simple-table.md +0 -103
  132. package/dist/mcp/generated/docs/tool-approval-card.md +0 -148
  133. package/dist/mcp/generated/docs/use-flow-node-actions.md +0 -124
  134. package/dist/mcp/generated/docs/user-question-answered-card.md +0 -106
  135. package/dist/mcp/generated/docs/user-question-card.md +0 -228
  136. package/dist/mcp/generated/docs/user-question-choice.md +0 -108
  137. package/dist/mcp/generated/docs/user-question-option.md +0 -42
  138. package/dist/mcp/generated/docs/vnode-renderer.md +0 -126
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 通过 provide/inject 管理同组图片预览。 源码位置:src/components/image-preview/image-preview-group.vue。
4
+ ImagePreviewGroup 通过 provide/inject 与子级 symbol 注册表管理多个 AiImage,点击任一子图时聚合已注册图片并打开内置全屏预览。 解决同屏多缩略图统一多图浏览与索引切换的需求。
5
5
 
6
6
  ### 关联组件
7
7
  - **ai-image** — 子级注册并参与多图预览集合
@@ -11,13 +11,8 @@
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # ImagePreviewGroup 图片预览组
14
- ## 源码事实
15
14
 
16
- - **源码位置**:`src/components/image-preview/image-preview-group.vue`
17
- - **能力域**:媒体文件
18
- - **能力说明**:通过 provide/inject 管理同组图片预览。
19
-
20
- > **能力域**:媒体文件
15
+ > **层级**:分子组件 · **功能域**:文件与图片
21
16
 
22
17
  多图预览管理容器。通过 `provide/inject` + `Map<symbol>` 模式管理子级 `AiImage` 的注册与预览状态,点击任意子图片时自动收集所有已注册图片并打开多图预览。
23
18
 
@@ -182,5 +177,5 @@ const IMAGE_PREVIEW_GROUP_KEY: InjectionKey<ImagePreviewGroupContext>;
182
177
 
183
178
  ## 关联组件
184
179
 
185
- - [AiImage](/components/medias/ai-image) — 子级缩略图与注册
186
- - [ImagePreview](/components/medias/image-preview) — 内置全屏预览
180
+ - [AiImage](../atomic/ai-image.md) — 子级缩略图与注册
181
+ - [ImagePreview](./image-preview.md) — 内置全屏预览
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 图片全屏预览容器,支持缩放、旋转、下载工具栏。 源码位置:src/components/image-preview/image-preview.vue。
4
+ ImagePreview 通过 Teleport 提供全屏图片预览,支持缩放、旋转、拖拽、下载、键盘与多图切换。 数据源可为 URL 字符串、ImageItem 或 File(自动 ObjectURL 并在关闭时回收)。 通常由 AiImage、ImagePreviewGroup、FileContent 等触发,业务较少直接单独挂载。
5
5
 
6
6
  ### 关联组件
7
7
  - **ai-image** — 独立模式下由 AiImage 打开预览
@@ -12,13 +12,8 @@
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # ImagePreview 图片预览
15
- ## 源码事实
16
15
 
17
- - **源码位置**:`src/components/image-preview/image-preview.vue`
18
- - **能力域**:媒体文件
19
- - **能力说明**:图片全屏预览容器,支持缩放、旋转、下载工具栏。
20
-
21
- > **能力域**:媒体文件
16
+ > **层级**:分子组件 · **功能域**:文件与图片
22
17
 
23
18
  全屏图片预览组件,通过 `Teleport` 渲染到 `body`,支持缩放、旋转、拖拽、下载、键盘导航等功能。`images` 支持传入 URL 字符串、`ImageItem` 对象或 `File` 对象,File 对象会自动通过 `URL.createObjectURL` 生成预览并在关闭/卸载时回收。通常不直接使用,而是配合 `AiImage`、`ImagePreviewGroup` 或 `FileContent` 自动触发。
24
19
 
@@ -224,6 +219,6 @@ type ImageLoadingStatus = 'loading' | 'loaded' | 'error';
224
219
 
225
220
  ## 关联组件
226
221
 
227
- - [AiImage](/components/medias/ai-image) — 独立模式触发预览
228
- - [ImagePreviewGroup](/components/medias/image-preview-group) — 多图预览容器
229
- - [FileContent](/components/medias/file-content) — 附件列表点击预览
222
+ - [AiImage](../atomic/ai-image.md) — 独立模式触发预览
223
+ - [ImagePreviewGroup](./image-preview-group.md) — 多图预览容器
224
+ - [FileContent](./file-content.md) — 附件列表点击预览
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 渲染居中的系统信息提示。 源码位置:src/components/chat-message/info-message/info-message.vue。
4
+ InfoMessage 以居中虚线分隔条展示系统提示、会话重置、时间戳等非对话信息;content 可为字符串或字符串数组。 由 MessageRender 在 info 角色下渲染,不承载用户与助手轮次内容。
5
5
 
6
6
  ### 关联组件
7
7
  - **message-render** — 由 MessageRender 在 role 为 info 时创建
@@ -11,13 +11,8 @@
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # InfoMessage 信息消息
14
- ## 源码事实
15
14
 
16
- - **源码位置**:`src/components/chat-message/info-message/info-message.vue`
17
- - **能力域**:消息系统
18
- - **能力说明**:渲染居中的系统信息提示。
19
-
20
- > **能力域**:消息系统
15
+ > **层级**:分子组件 · **功能域**:消息展示
21
16
 
22
17
  系统信息分隔组件,在聊天消息列表中以**居中虚线分隔条**的形式展示非对话类信息(会话重置、时间节点、状态变更等)。
23
18
 
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 以键值列表展示结构化内容。 源码位置:src/components/chat-content/key-value-content/key-value-content.vue
4
+ KeyValueContent 以多行 key : value 形式展示结构化数据,可选标题栏与 ThinkingIcon 常见于用户消息等需要表格化键值的气泡展示。
5
5
 
6
6
  ### 关联组件
7
7
  - **user-message** — 用户消息内展示结构化附加信息
@@ -10,15 +10,10 @@
10
10
  <!-- FULL DOC -->
11
11
 
12
12
  # KeyValueContent 键值对内容
13
- ## 源码事实
14
13
 
15
- - **源码位置**:`src/components/chat-content/key-value-content/key-value-content.vue`
16
- - **能力域**:内容渲染
17
- - **能力说明**:以键值列表展示结构化内容。
14
+ > **层级**:原子组件 · **功能域**:辅助组件
18
15
 
19
- > **能力域**:内容渲染
20
-
21
- 键值对列表展示基础组件,每行以 `key : value` 格式渲染一条数据,支持可选标题栏(带 `ThinkingIcon`)。
16
+ 键值对列表展示原子组件,每行以 `key : value` 格式渲染一条数据,支持可选标题栏(带 `ThinkingIcon`)。
22
17
 
23
18
  主要被 `UserMessage` 内部用于渲染结构化引用内容(`property.extra.cite.data`),通常不需要手动引入。
24
19
 
@@ -126,4 +121,4 @@ const message = {
126
121
 
127
122
  ## 关联组件
128
123
 
129
- - [UserMessage](/components/message/user-message) — 键值气泡展示
124
+ - [UserMessage](../molecular/user-message.md) — 键值气泡展示
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 使用 KaTeX 渲染 LaTeX 公式内容。 源码位置:src/components/markdown-token/latex-content/latex-content.vue。
4
+ LatexContent 使用 KaTeX 渲染 math_block / math_inline 等 token,支持行内块级混排与流式防抖。 必填 props 为 token 数组;失败时静默降级展示原始 LaTeX 文本。 由 MarkdownContent 在数学插件解析后自动调用。
5
5
 
6
6
  ### 关联组件
7
7
  - **markdown-content** — 插件解析 $...$ / $$...$$ 后生成数学 token 并挂载本组件
@@ -10,15 +10,10 @@
10
10
  <!-- FULL DOC -->
11
11
 
12
12
  # LatexContent LaTeX 公式渲染
13
- ## 源码事实
14
13
 
15
- - **源码位置**:`src/components/markdown-token/latex-content/latex-content.vue`
16
- - **能力域**:内容渲染
17
- - **能力说明**:使用 KaTeX 渲染 LaTeX 公式内容。
14
+ > **层级**:原子组件 · **功能域**:内容渲染
18
15
 
19
- > **能力域**:内容渲染
20
-
21
- Markdown Token 层的 LaTeX 公式渲染基础组件,基于 **KaTeX** 实现。被 `MarkdownContent` 在解析到数学公式 token 时自动调用,通常无需手动引入。
16
+ Markdown Token 层的 LaTeX 公式渲染原子组件,基于 **KaTeX** 实现。被 `MarkdownContent` 在解析到数学公式 token 时自动调用,通常无需手动引入。
22
17
 
23
18
  核心能力:**流式防抖渲染**(throttle 100ms)、**语法自动补全**(`completeLatexContent`)、**渐进式降级重试**(最多 5 次)、**错误静默**(错误文本白色不可见)。
24
19
 
@@ -198,4 +193,4 @@ const displayMode = token.type === 'math_block' || token.meta?.displayMode === t
198
193
 
199
194
  ## 关联组件
200
195
 
201
- - [MarkdownContent](/components/rendering/markdown-content) — 数学公式 token 的来源与挂载
196
+ - [MarkdownContent](./markdown-content.md) — 数学公式 token 的来源与挂载
@@ -1,24 +1,19 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 消息列表中的加载占位,默认使用 AiLoading,也支持默认插槽覆盖。 源码位置:src/components/chat-message/loading-message/loading-message.vue。
4
+ LoadingMessage 展示等待 AI 响应的加载动画(内部 AiLoading),无必填 Props,默认插槽可自定义「请求中」文案。 典型用法是由 MessageContainer 在末尾为用户消息时自动注入 Loading 组;也可在自定义布局中手动放置。
5
5
 
6
6
  ### 关联组件
7
7
  - **message-container** — 在消息列表末尾自动追加 Loading 消息组
8
8
  - **message-render** — role 为 loading 时由 MessageRender 渲染
9
- - **ai-loading** — 内部使用 AiLoading 基础组件
9
+ - **ai-loading** — 内部使用 AiLoading 原子组件
10
10
 
11
11
  ---
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # LoadingMessage 加载中消息
15
- ## 源码事实
16
15
 
17
- - **源码位置**:`src/components/chat-message/loading-message/loading-message.vue`
18
- - **能力域**:消息系统
19
- - **能力说明**:消息列表中的加载占位,默认使用 AiLoading,也支持默认插槽覆盖。
20
-
21
- > **能力域**:消息系统
16
+ > **层级**:分子组件 · **功能域**:消息展示
22
17
 
23
18
  加载等待状态组件,展示 AI 正在处理请求时的过渡动画。由旋转渐变环 + 脉冲星形图标(蓝→紫→粉渐变)和"请求中..."文案组成。支持通过默认插槽自定义加载文案。
24
19
 
@@ -171,6 +166,6 @@ enum MessageRole {
171
166
 
172
167
  ## 关联组件
173
168
 
174
- - [MessageContainer](/components/setup/message-container) — 自动注入加载组
175
- - [MessageRender](/components/message/message-render) — loading 角色派发
176
- - [AiLoading](/components/helper/ai-loading) — 内部动画组件
169
+ - [MessageContainer](./message-container.md) — 自动注入加载组
170
+ - [MessageRender](./message-render.md) — loading 角色派发
171
+ - [AiLoading](../atomic/ai-loading.md) — 内部动画组件
@@ -53,4 +53,4 @@ const md = new MarkdownIt({ html: true }).use(markdownItContainer, /^hljs-(left|
53
53
 
54
54
  ## 关联
55
55
 
56
- - [MarkdownContent](../components/rendering/markdown-content) — 实际接入与样式
56
+ - [MarkdownContent](../components/atomic/markdown-content.md) — 实际接入与样式
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- Markdown 主渲染器,集成代码块、公式、错误降级和 codeHeader 插槽。 源码位置:src/components/chat-content/markdown-content/markdown-content.vue。
4
+ MarkdownContent 将 Markdown 字符串解析为 token 并渲染,集成代码块、公式、Mermaid 等子渲染器。 核心 props 为 content 与 status;内置流式节流、语法补全与 DOMPurify 安全策略。 通常由 ContentRender、AssistantMessage 等间接使用,无需业务直接挂载。
5
5
 
6
6
  ### 关联组件
7
7
  - **code-content** — fence 代码块语法高亮与复制
@@ -13,17 +13,12 @@ Markdown 主渲染器,集成代码块、公式、错误降级和 codeHeader
13
13
  <!-- FULL DOC -->
14
14
 
15
15
  # MarkdownContent Markdown 内容渲染
16
- ## 源码事实
17
16
 
18
- - **源码位置**:`src/components/chat-content/markdown-content/markdown-content.vue`
19
- - **能力域**:内容渲染
20
- - **能力说明**:Markdown 主渲染器,集成代码块、公式、错误降级和 codeHeader 插槽。
17
+ > **层级**:原子组件 · **功能域**:内容渲染
21
18
 
22
- > **能力域**:内容渲染
19
+ AI 消息内容渲染的核心原子组件,集成代码高亮、LaTeX 公式、Mermaid 图表等能力,内置流式渲染优化(5ms throttle + 语法补全 + 防闪烁)。
23
20
 
24
- AI 消息内容渲染的核心基础组件,集成代码高亮、LaTeX 公式、Mermaid 图表等能力,内置流式渲染优化(5ms throttle + 语法补全 + 防闪烁)。
25
-
26
- 由 `AssistantMessage`、`ReasoningMessage` 等组合组件内部自动使用,通常不需要手动引入。
21
+ `AssistantMessage`、`ReasoningMessage` 等分子组件内部自动使用,通常不需要手动引入。
27
22
 
28
23
  ## 组件结构与渲染流程
29
24
 
@@ -230,7 +225,7 @@ const domPurifyConfig = {
230
225
 
231
226
  ## 关联组件
232
227
 
233
- - [CodeContent](/components/rendering/code-content) — 代码 fence 高亮
234
- - [LatexContent](/components/rendering/latex-content) — 公式渲染
235
- - [MermaidContent](/components/rendering/mermaid-content) — Mermaid 图表
236
- - [ContentRender](/components/rendering/content-render) — 内容类型分发入口
228
+ - [CodeContent](./code-content.md) — 代码 fence 高亮
229
+ - [LatexContent](./latex-content.md) — 公式渲染
230
+ - [MermaidContent](./mermaid-content.md) — Mermaid 图表
231
+ - [ContentRender](../molecular/content-render.md) — 内容类型分发入口
@@ -203,6 +203,6 @@ KaTeX 限制:
203
203
 
204
204
  ## 关联组件
205
205
 
206
- - [LatexContent](../components/rendering/latex-content) — KaTeX 渲染
207
- - [MarkdownContent](../components/rendering/markdown-content) — Markdown 内容
208
- - [ContentRender](../components/rendering/content-render) — 内容渲染
206
+ - [LatexContent](../components/atomic/latex-content.md) — KaTeX 渲染
207
+ - [MarkdownContent](../components/atomic/markdown-content.md) — Markdown 内容
208
+ - [ContentRender](../components/molecular/content-render.md) — 内容渲染
@@ -245,6 +245,6 @@ erDiagram
245
245
 
246
246
  ## 关联组件
247
247
 
248
- - [MermaidContent](../components/rendering/mermaid-content) — Mermaid 渲染
249
- - [MarkdownContent](../components/rendering/markdown-content) — Markdown 内容
250
- - [ContentRender](../components/rendering/content-render) — 内容渲染
248
+ - [MermaidContent](../components/atomic/mermaid-content.md) — Mermaid 渲染
249
+ - [MarkdownContent](../components/atomic/markdown-content.md) — Markdown 内容
250
+ - [ContentRender](../components/molecular/content-render.md) — 内容渲染
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 渲染 Mermaid 图表并处理渲染事件。 源码位置:src/components/markdown-token/mermaid-content/mermaid-content.vue。
4
+ MermaidContent 将 info 为 mermaid 的 fence token 渲染为 SVG,模块级懒加载单例 Mermaid 具备流式 throttle、错误静默与 SVG ID 随机化,避免多实例冲突。 由 MarkdownContent 在解析 mermaid 代码块时调用。
5
5
 
6
6
  ### 关联组件
7
7
  - **markdown-content** — 解析 mermaid 类型 fence 代码块后传入 token
@@ -10,15 +10,10 @@
10
10
  <!-- FULL DOC -->
11
11
 
12
12
  # MermaidContent Mermaid 图表渲染
13
- ## 源码事实
14
13
 
15
- - **源码位置**:`src/components/markdown-token/mermaid-content/mermaid-content.vue`
16
- - **能力域**:内容渲染
17
- - **能力说明**:渲染 Mermaid 图表并处理渲染事件。
14
+ > **层级**:原子组件 · **功能域**:内容渲染
18
15
 
19
- > **能力域**:内容渲染
20
-
21
- Markdown Token 层的 Mermaid 图表渲染基础组件,被 `MarkdownContent` 在检测到 mermaid fence token 时自动调用,通常无需手动引入。
16
+ Markdown Token 层的 Mermaid 图表渲染原子组件,被 `MarkdownContent` 在检测到 mermaid fence token 时自动调用,通常无需手动引入。
22
17
 
23
18
  核心能力:**按需懒加载 Mermaid**(动态 import 单例)、**三级去重跳过**(代码比对 → 语法校验 → SVG 比对)、**100ms throttle** 流式防抖、**错误静默**(parse 失败时保持上一次 SVG)。
24
19
 
@@ -187,4 +182,4 @@ mermaid.default.render('mermaid-content-' + Math.random().toString(36).substring
187
182
 
188
183
  ## 关联组件
189
184
 
190
- - [MarkdownContent](/components/rendering/markdown-content) — mermaid fence token 的来源与挂载
185
+ - [MarkdownContent](./markdown-content.md) — mermaid fence token 的来源与挂载
@@ -1,25 +1,19 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 负责消息分组渲染、滚动控制、工具栏和消息插槽透传。 源码位置:src/components/chat-message/message-container/message-container.vue。
4
+ MessageContainer 是消息列表的核心容器。接收父组件用 useMessageGroup 生成的 messageGroups 与 messageStatus, 内部通过 MessageRender 按组渲染消息。支持流式停止、自动滚动与返回底部、多选与工具栏,需配置 onAgentAction 处理复制/重试等;点赞点踩通过 onAgentFeedback 回传原因。通常与 ChatInput 组合成完整对话区。
5
5
 
6
6
  ### 关联组件
7
7
  - **message-render** — 按组渲染每条消息时委托 MessageRender
8
8
  - **chat-input** — 常与 ChatInput 组合构成完整对话界面
9
9
  - **loading-message** — 末尾为用户消息时自动追加 Loading 消息组
10
- - **interrupt-message** — 透传 onInterruptResume;末条 interrupt 消息不触发组 hover
11
10
 
12
11
  ---
13
12
  <!-- FULL DOC -->
14
13
 
15
14
  # MessageContainer 消息容器
16
- ## 源码事实
17
15
 
18
- - **源码位置**:`src/components/chat-message/message-container/message-container.vue`
19
- - **能力域**:对话搭建
20
- - **能力说明**:负责消息分组渲染、滚动控制、工具栏和消息插槽透传。
21
-
22
- > **能力域**:对话搭建
16
+ > **层级**:分子组件 · **功能域**:消息展示
23
17
 
24
18
  消息列表容器组件,负责将原始的 `Message[]` 数组渲染为结构化的对话界面。核心能力:
25
19
 
@@ -119,7 +113,6 @@
119
113
  - 每个消息组外层 DOM 的 `id` 为 **`MessageGroup.uid`**(由 `useMessageGroup` 生成),供执行摘要「在对话中定位」、侧栏自定义 Tab 等场景滚动锚定
120
114
  - `role: 'tool'` 消息**不会独立渲染**,而是被注入到对应 AssistantMessage 的 `toolCall.toolMessage` 字段
121
115
  - 若 `toolMessage.error` 存在,AssistantMessage 的 `status` 会被强制设为 `MessageStatus.Error`
122
- - 当消息组**最后一条**消息的 `role === 'interrupt'` 时,`mouseenter` **不会**设置 `isHover`,避免 AI 工具栏在审批卡片上误显
123
116
  - `MessageTools` 工具栏只在 `type === 'assistant'` 的消息组底部渲染(不依赖鼠标悬停,始终可见),且满足以下条件时**不渲染**:
124
117
  - `renderMode === RenderMode.Share`(分享预览模式)
125
118
  - 消息组的 `pause` 为 `true`(来源于 `message.property?.extra?.pause`)
@@ -363,42 +356,9 @@ AI 回复状态为 `error` 时,消息以错误样式展示:
363
356
 
364
357
  **渲染效果**(点击 Checkbox 体验多选)
365
358
 
366
- ## 自定义消息组渲染
367
-
368
- 使用 `#group` 插槽可替换单个消息组的默认内容(Checkbox、消息列表、`MessageTools`)。外层 `.message-group` 容器(含 `id`、hover 状态、选中背景色)仍由 `MessageContainer` 管理。
369
-
370
- > **注意**:提供 `#group` 后需自行编排组内全部 UI;若只需替换单条消息,请使用 `#default` 插槽。
371
-
372
- ```vue
373
- <template>
374
- <MessageContainer
375
- :messages="messages"
376
- :message-groups="messageGroups"
377
- message-status="complete"
378
- :on-agent-action="handleAgentAction"
379
- @stop-streaming="handleStopStreaming"
380
- >
381
- <template #group="{ group }">
382
- <div class="custom-group">
383
- <span class="custom-group-label">{{ group.type }}</span>
384
- <div
385
- v-for="message in group.messages"
386
- :key="message.id"
387
- class="custom-group-message"
388
- >
389
- {{ typeof message.content === 'string' ? message.content : JSON.stringify(message.content) }}
390
- </div>
391
- </div>
392
- </template>
393
- </MessageContainer>
394
- </template>
395
- ```
396
-
397
- **渲染效果**(简化自定义组布局,不含默认 Checkbox 与工具栏)
398
-
399
359
  ## 自定义消息渲染
400
360
 
401
- 使用默认插槽替换单条消息的渲染,插槽参数包含 `message`、`messageToolsStatus` 和 `onInterruptResume`:
361
+ 使用默认插槽替换单条消息的渲染,插槽参数包含 `message` 和 `messageToolsStatus`:
402
362
 
403
363
  ```vue
404
364
  <template>
@@ -409,11 +369,10 @@ AI 回复状态为 `error` 时,消息以错误样式展示:
409
369
  :on-user-action="handleUserAction"
410
370
  @stop-streaming="handleStopStreaming"
411
371
  >
412
- <template #default="{ message, messageToolsStatus, onInterruptResume }">
372
+ <template #default="{ message, messageToolsStatus }">
413
373
  <MyCustomMessage
414
374
  :message="message"
415
375
  :message-tools-status="messageToolsStatus"
416
- :on-interrupt-resume="onInterruptResume"
417
376
  />
418
377
  </template>
419
378
  </MessageContainer>
@@ -509,7 +468,6 @@ AI 回复状态为 `error` 时,消息以错误样式展示:
509
468
  | onUserAction | `(tool: IToolBtn, message: Message) => Promise<string[] \| void>` | — | 用户消息工具操作回调 |
510
469
  | onUserInputConfirm | `(message: Message, content: UserMessage['content'], docSchema: TagSchema) => Promise<void>` | — | 用户编辑消息确认回调 |
511
470
  | onUserShortcutConfirm | `(message: Message, formModel: Record<string, unknown>) => Promise<void>` | — | 用户快捷指令表单提交回调 |
512
- | onInterruptResume | `OnInterruptResume` | — | AG-UI human-in-the-loop 中断响应回调,透传给 `MessageRender` → `InterruptMessageRender` |
513
471
  | renderMode | `RenderMode` | — | 渲染模式。`Share` 模式下启用多选样式并隐藏工具栏;`Test` 模式下过滤掉「分享」按钮;不传或 `Chat` 为默认行为 |
514
472
 
515
473
  ### v-model
@@ -526,28 +484,14 @@ AI 回复状态为 `error` 时,消息以错误样式展示:
526
484
 
527
485
  ### Slots
528
486
 
529
- | 插槽名 | 参数 | 说明 |
530
- | ---------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
531
- | answeredQuestion | `{ item, index, status }` | 自定义 UserQuestion 已回答回显,透传给 MessageRender InterruptMessageRender |
532
- | default | `{ message: Message, messageToolsStatus?: MessageToolsStatus, onInterruptResume?: OnInterruptResume }` | 自定义单条消息渲染;消息分组外层容器与 `#group` 未覆盖时的工具栏仍由容器管理 |
533
- | group | `{ group: MessageGroup }` | 自定义单个消息组内容,替换默认 Checkbox、消息列表与 `MessageTools`;外层组容器仍由组件管理 |
487
+ | 插槽名 | 参数 | 说明 |
488
+ | ------- | --------------------------------------------------------------------------- | ------------------------------------------------ |
489
+ | default | `{ message: Message, messageToolsStatus: MessageToolsStatus \| undefined }` | 自定义单条消息渲染,消息分组和工具栏仍由容器管理 |
534
490
 
535
491
  ## 类型定义
536
492
 
537
493
  ```typescript
538
- import { MessageRole, MessageStatus, MessageToolsStatus, type Message, type MessageGroup, type IToolBtn } from '@blueking/chat-x';
539
-
540
- // 消息组(由 useMessageGroup 生成,也可手动传入 messageGroups)
541
- interface MessageGroup {
542
- checked: boolean;
543
- isHover: boolean;
544
- messages: Message[];
545
- pause?: boolean;
546
- startTime?: number;
547
- type: MessageRole;
548
- uid: string;
549
- userMessageTitle?: number | string;
550
- }
494
+ import { MessageRole, MessageStatus, MessageToolsStatus, type Message, type IToolBtn } from '@blueking/chat-x';
551
495
 
552
496
  // onAgentAction 回调类型
553
497
  // messages 为当前消息组全部消息(可含 reasoning / activity 等)
@@ -574,7 +518,6 @@ enum MessageRole {
574
518
  Reasoning = 'reasoning',
575
519
  Activity = 'activity',
576
520
  Info = 'info',
577
- Interrupt = 'interrupt',
578
521
  Loading = 'loading',
579
522
  }
580
523
 
@@ -591,7 +534,6 @@ enum MessageStatus {
591
534
 
592
535
  ## 关联组件
593
536
 
594
- - [MessageRender](/components/message/message-render) — 按组渲染每条消息时委托使用
595
- - [InterruptMessage 中断消息](/components/agent/interrupt-message) — `role: 'interrupt'` 的渲染与 `onInterruptResume` 透传
596
- - [ChatInput](/components/input/chat-input) — 常与输入区组合构成完整对话界面
597
- - [LoadingMessage](/components/message/loading-message) — 末尾为用户消息时自动追加加载组
537
+ - [MessageRender](./message-render.md) — 按组渲染每条消息时委托使用
538
+ - [ChatInput](./chat-input.md) — 常与输入区组合构成完整对话界面
539
+ - [LoadingMessage](./loading-message.md) — 末尾为用户消息时自动追加加载组
@@ -1,25 +1,19 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- message.role 分发到用户、助手、工具、推理、活动、中断等消息组件。 源码位置:src/components/chat-message/message-render/message-render.vue。
4
+ MessageRender 是单条消息的渲染入口,根据 message.role 派发到 UserMessage、AssistantMessage、ReasoningMessage、 ToolMessage、ActivityMessage、InfoMessage、LoadingMessage 等。Assistant 默认通过插槽用 ContentRender 渲染正文,可被默认插槽覆盖。 无独立状态,通常由 MessageContainer 内部调用而非业务直接挂载。
5
5
 
6
6
  ### 关联组件
7
7
  - **message-container** — 在 MessageContainer 中按组调用以渲染每条消息
8
8
  - **assistant-message** — role 为 assistant 时渲染 AI 回复与工具调用
9
9
  - **user-message** — role 为 user 时渲染用户消息
10
- - **interrupt-message** — role 为 interrupt 时渲染 InterruptMessageRender
11
10
 
12
11
  ---
13
12
  <!-- FULL DOC -->
14
13
 
15
14
  # MessageRender 消息渲染器
16
- ## 源码事实
17
15
 
18
- - **源码位置**:`src/components/chat-message/message-render/message-render.vue`
19
- - **能力域**:消息系统
20
- - **能力说明**:按 message.role 分发到用户、助手、工具、推理、活动、中断等消息组件。
21
-
22
- > **能力域**:消息系统
16
+ > **层级**:分子组件 · **功能域**:消息展示
23
17
 
24
18
  统一的消息渲染入口,通过 `message.role` 字段自动派发到对应的子组件。整个渲染过程由一个 `computed` 属性完成,无额外状态。
25
19
 
@@ -39,9 +33,8 @@ MessageRender
39
33
  │ ├── 'info' → InfoMessage(转发 message)
40
34
  │ ├── 'reasoning' → ReasoningMessage(转发 message)
41
35
  │ ├── 'tool' → ToolMessage(转发 message)
42
- │ ├── 'activity' → ActivityMessage(转发 message + onInterruptResume
36
+ │ ├── 'activity' → ActivityMessage(转发 message)
43
37
  │ ├── 'loading' → LoadingMessage(转发 message)
44
- │ ├── 'interrupt' → InterruptMessageRender(转发 message + onInterruptResume)
45
38
  │ │
46
39
  │ └── 其他 / 未知 → null(不渲染任何内容)
47
40
  ```
@@ -274,17 +267,15 @@ slot 参数类型与 `AssistantMessage` 的 slot 保持一致(`Partial<Assista
274
267
  | messageToolsStatus | `MessageToolsStatus` | — | 工具按钮状态;**仅转发给 `UserMessage`** |
275
268
  | onAction | `(tool: IToolBtn) => Promise<string[] \| void>` | — | 工具操作回调;**仅转发给 `UserMessage`** |
276
269
  | onInputConfirm | `(content: UserMessage['content'], docSchema: TagSchema) => Promise<void>` | — | 用户编辑确认回调;**仅转发给 `UserMessage`** |
277
- | onInterruptResume | `(payload: InterruptResume, interrupt?: Interrupt) => Promise<void>` | — | 中断 / FlowAgent 节点操作回调;转发给 `InterruptMessageRender` 与 `ActivityMessage`(后者仅 `flow_agent` 子组件消费) |
278
270
  | onShortcutConfirm | `(formModel: Record<string, unknown>) => Promise<void>` | — | 用户快捷指令提交回调;**仅转发给 `UserMessage`** |
279
271
  | tippyOptions | `Partial<Omit<TippyOptions, 'getReferenceClientRect' \| 'triggerTarget'>>` | — | 自定义 Tippy 配置;**仅转发给 `UserMessage`** |
280
272
 
281
273
  ### Slots
282
274
 
283
- | 插槽名 | 参数 | 说明 |
284
- | ---------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
285
- | answeredQuestion | `{ item, index, status }` | 自定义 UserQuestion 已回答回显,透传给 InterruptMessageRenderUserQuestionAnsweredCard `#answer` |
286
- | codeHeader | `{ language: string; token: Token[] }` | 代码块头部自定义操作区域,透传给 ContentRender MarkdownContent → CodeContent;**仅对 assistant 生效** |
287
- | default | `{ content: string, status: MessageStatus }` | 替换 AssistantMessage 的内容区域渲染;**仅对 `role: 'assistant'` 生效** |
275
+ | 插槽名 | 参数 | 说明 |
276
+ | ---------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
277
+ | codeHeader | `{ language: string; token: Token[] }` | 代码块头部自定义操作区域,透传给 ContentRender MarkdownContentCodeContent;**仅对 assistant 生效** |
278
+ | default | `{ content: string, status: MessageStatus }` | 替换 AssistantMessage 的内容区域渲染;**仅对 `role: 'assistant'` 生效** |
288
279
 
289
280
  ## 消息类型映射
290
281
 
@@ -295,9 +286,8 @@ slot 参数类型与 `AssistantMessage` 的 slot 保持一致(`Partial<Assista
295
286
  | `info` | `InfoMessage` | `message` | 系统信息 / 会话分隔符 |
296
287
  | `reasoning` | `ReasoningMessage` | `message` | AI 思考过程(可折叠) |
297
288
  | `tool` | `ToolMessage` | `message` | 工具调用返回结果 |
298
- | `activity` | `ActivityMessage` | `message` + `onInterruptResume` | 知识检索 / 引用文档 / FlowAgent 执行(节点重试 / 跳过) |
289
+ | `activity` | `ActivityMessage` | `message` | 知识检索 / 引用文档 |
299
290
  | `loading` | `LoadingMessage` | `message`(字段被忽略,组件无 Props) | 等待响应的加载占位 |
300
- | `interrupt` | `InterruptMessageRender` | `message` + `onInterruptResume` | human-in-the-loop 中断 |
301
291
  | 其他 / 未知 | — | — | 返回 `null`,不渲染 |
302
292
 
303
293
  ## 类型定义
@@ -335,8 +325,6 @@ enum MessageToolsStatus {
335
325
 
336
326
  ## 关联组件
337
327
 
338
- - [MessageContainer](/components/setup/message-container) — 内部按组调用以渲染每条消息
339
- - [AssistantMessage](/components/message/assistant-message) — assistant 角色派发目标
340
- - [UserMessage](/components/message/user-message) — user 角色派发目标
341
- - [InterruptMessage 中断消息](/components/agent/interrupt-message) — interrupt 角色派发目标
342
- - [ToolApprovalCard 审批卡片](/components/agent/tool-approval-card) — AI Dev 审批中断子卡片
328
+ - [MessageContainer](./message-container.md) — 内部按组调用以渲染每条消息
329
+ - [AssistantMessage](./assistant-message.md) — assistant 角色派发目标
330
+ - [UserMessage](./user-message.md) — user 角色派发目标
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 消息悬浮工具栏,组合复制、删除、反馈等工具按钮。 源码位置:src/components/message-tools/message-tools.vue。
4
+ MessageTools 渲染 AI 消息底部工具区:左侧消息工具(复制、引用、重建等),右侧更新工具;点赞/踩会弹出 UserFeedback 收集原因。 工具 id 为 delete 时用 DeleteTool 替代普通 ToolBtn 做二次确认;其余操作通过 onAction 异步解析或直出。
5
5
 
6
6
  ### 关联组件
7
7
  - **tool-btn** — 普通工具项由 ToolBtn 渲染
@@ -12,13 +12,8 @@
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # MessageTools 消息工具栏
15
- ## 源码事实
16
15
 
17
- - **源码位置**:`src/components/message-tools/message-tools.vue`
18
- - **能力域**:工具与反馈
19
- - **能力说明**:消息悬浮工具栏,组合复制、删除、反馈等工具按钮。
20
-
21
- > **能力域**:工具与反馈
16
+ > **层级**:分子组件 · **功能域**:工具与反馈
22
17
 
23
18
  AI 消息的操作工具栏组件,由**左侧消息工具区**和**右侧更新工具区**两部分组成,中间以分隔线分隔。仅 `like` / `unlike` 按钮会弹出反馈表单(`UserFeedback`),其余按钮直接触发 `onAction`。
24
19
 
@@ -376,6 +371,6 @@ enum MessageToolsStatus {
376
371
 
377
372
  ## 关联组件
378
373
 
379
- - [ToolBtn](/components/feedback/tool-btn) — 单项工具按钮
380
- - [UserFeedback](/components/feedback/user-feedback) — 点赞/踩反馈面板
381
- - [DeleteTool](/components/feedback/delete-tool) — 删除二次确认
374
+ - [ToolBtn](../atomic/tool-btn.md) — 单项工具按钮
375
+ - [UserFeedback](./user-feedback.md) — 点赞/踩反馈面板
376
+ - [DeleteTool](./delete-tool.md) — 删除二次确认