@blueking/chat-x 0.0.45-beta.6 → 0.0.45-beta.8

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 (135) hide show
  1. package/README.md +1 -1
  2. package/dist/ag-ui/types/constants.d.ts +16 -0
  3. package/dist/ag-ui/types/contents.d.ts +2 -0
  4. package/dist/ag-ui/types/index.d.ts +2 -0
  5. package/dist/ag-ui/types/interrupt.d.ts +152 -0
  6. package/dist/ag-ui/types/messages.d.ts +2 -0
  7. package/dist/ag-ui/types/schema.d.ts +42 -0
  8. package/dist/components/ai-questions/questions-container.vue.d.ts +3 -0
  9. package/dist/components/ai-questions/selection-question.vue.d.ts +3 -0
  10. package/dist/components/chat-content/flow-agent-content/flow-agent-content.vue.d.ts +3 -0
  11. package/dist/components/chat-content/flow-agent-content/use-flow-agent.d.ts +4 -0
  12. package/dist/components/chat-content/flow-agent-content/use-flow-node-actions.d.ts +32 -0
  13. package/dist/components/chat-content/index.d.ts +2 -0
  14. package/dist/components/chat-input/chat-input.vue.d.ts +14 -8
  15. package/dist/components/chat-input/input-attachment/input-attachment.vue.d.ts +1 -0
  16. package/dist/components/chat-input/input-info-alert.vue.d.ts +6 -0
  17. package/dist/components/chat-message/activity-message/activity-message.vue.d.ts +4 -1
  18. package/dist/components/chat-message/assistant-message/assistant-message.vue.d.ts +1 -1
  19. package/dist/components/chat-message/interrupt-message/index.d.ts +2 -0
  20. package/dist/components/chat-message/interrupt-message/interrupt-message.vue.d.ts +17 -0
  21. package/dist/components/chat-message/interrupt-message/tool-approval-card.vue.d.ts +9 -0
  22. package/dist/components/chat-message/interrupt-message/user-question/index.d.ts +5 -0
  23. package/dist/components/chat-message/interrupt-message/user-question/use-user-question.d.ts +35 -0
  24. package/dist/components/chat-message/interrupt-message/user-question/user-question-answered-card.vue.d.ts +25 -0
  25. package/dist/components/chat-message/interrupt-message/user-question/user-question-card.vue.d.ts +25 -0
  26. package/dist/components/chat-message/interrupt-message/user-question/user-question-choice.vue.d.ts +13 -0
  27. package/dist/components/chat-message/interrupt-message/user-question/user-question-option.vue.d.ts +17 -0
  28. package/dist/components/chat-message/message-container/message-container.vue.d.ts +14 -7
  29. package/dist/components/chat-message/message-render/message-render.vue.d.ts +4 -0
  30. package/dist/components/index.d.ts +3 -2
  31. package/dist/composables/use-global-config.d.ts +3 -0
  32. package/dist/composables/use-message-group.d.ts +2224 -355
  33. package/dist/icons/index.d.ts +1 -0
  34. package/dist/icons/interrupt.d.ts +24 -0
  35. package/dist/index.css +1 -1
  36. package/dist/index.js +2572 -1937
  37. package/dist/index.js.map +1 -1
  38. package/dist/lang/lang.d.ts +34 -2
  39. package/dist/mcp/generated/docs/activity-layout.md +138 -0
  40. package/dist/mcp/generated/docs/activity-message.md +21 -7
  41. package/dist/mcp/generated/docs/ai-image.md +9 -4
  42. package/dist/mcp/generated/docs/ai-loading.md +11 -6
  43. package/dist/mcp/generated/docs/ai-prompt-list.md +42 -0
  44. package/dist/mcp/generated/docs/ai-selection.md +10 -5
  45. package/dist/mcp/generated/docs/ai-slash-editor.md +43 -0
  46. package/dist/mcp/generated/docs/ai-slash-input.md +43 -0
  47. package/dist/mcp/generated/docs/ai-slash-menu.md +42 -0
  48. package/dist/mcp/generated/docs/animation-text.md +9 -4
  49. package/dist/mcp/generated/docs/assistant-message.md +10 -5
  50. package/dist/mcp/generated/docs/chat-container.md +173 -19
  51. package/dist/mcp/generated/docs/chat-input.md +78 -10
  52. package/dist/mcp/generated/docs/cite-content.md +8 -3
  53. package/dist/mcp/generated/docs/code-content.md +9 -4
  54. package/dist/mcp/generated/docs/common-error-content.md +10 -5
  55. package/dist/mcp/generated/docs/constants.md +68 -3
  56. package/dist/mcp/generated/docs/content-render.md +10 -5
  57. package/dist/mcp/generated/docs/delete-tool.md +9 -4
  58. package/dist/mcp/generated/docs/desc-panel.md +9 -4
  59. package/dist/mcp/generated/docs/detail-section.md +93 -0
  60. package/dist/mcp/generated/docs/execution-summary.md +10 -5
  61. package/dist/mcp/generated/docs/file-content.md +9 -4
  62. package/dist/mcp/generated/docs/file-upload-btn.md +10 -5
  63. package/dist/mcp/generated/docs/flow-agent-content.md +252 -0
  64. package/dist/mcp/generated/docs/flow-agent-node-detail.md +240 -0
  65. package/dist/mcp/generated/docs/highlight-keyword.md +10 -5
  66. package/dist/mcp/generated/docs/image-content.md +9 -4
  67. package/dist/mcp/generated/docs/image-preview-group.md +9 -4
  68. package/dist/mcp/generated/docs/image-preview.md +10 -5
  69. package/dist/mcp/generated/docs/info-message.md +7 -2
  70. package/dist/mcp/generated/docs/input-attachment.md +43 -0
  71. package/dist/mcp/generated/docs/input-info-alert.md +42 -0
  72. package/dist/mcp/generated/docs/interrupt-message.md +216 -0
  73. package/dist/mcp/generated/docs/interrupt.md +377 -0
  74. package/dist/mcp/generated/docs/key-value-content.md +9 -4
  75. package/dist/mcp/generated/docs/knowledge-rag-content.md +126 -0
  76. package/dist/mcp/generated/docs/latex-content.md +9 -4
  77. package/dist/mcp/generated/docs/loading-message.md +11 -6
  78. package/dist/mcp/generated/docs/markdown-container.md +1 -1
  79. package/dist/mcp/generated/docs/markdown-content.md +13 -8
  80. package/dist/mcp/generated/docs/markdown-latex.md +3 -3
  81. package/dist/mcp/generated/docs/markdown-mermaid.md +3 -3
  82. package/dist/mcp/generated/docs/mermaid-content.md +9 -4
  83. package/dist/mcp/generated/docs/message-container.md +74 -16
  84. package/dist/mcp/generated/docs/message-loading.md +120 -0
  85. package/dist/mcp/generated/docs/message-render.md +23 -11
  86. package/dist/mcp/generated/docs/message-tools.md +10 -5
  87. package/dist/mcp/generated/docs/messages.md +75 -11
  88. package/dist/mcp/generated/docs/overflow-tips.md +4 -4
  89. package/dist/mcp/generated/docs/preview-toolbar.md +42 -0
  90. package/dist/mcp/generated/docs/questions-container.md +88 -0
  91. package/dist/mcp/generated/docs/reasoning-message.md +10 -5
  92. package/dist/mcp/generated/docs/reference-content.md +10 -5
  93. package/dist/mcp/generated/docs/reference-doc-content.md +112 -0
  94. package/dist/mcp/generated/docs/schema.md +93 -0
  95. package/dist/mcp/generated/docs/scroll-btn.md +8 -3
  96. package/dist/mcp/generated/docs/selection-footer.md +9 -4
  97. package/dist/mcp/generated/docs/selection-question.md +91 -0
  98. package/dist/mcp/generated/docs/shortcut-btn.md +10 -5
  99. package/dist/mcp/generated/docs/shortcut-btns.md +10 -5
  100. package/dist/mcp/generated/docs/shortcut-render.md +10 -5
  101. package/dist/mcp/generated/docs/simple-table.md +103 -0
  102. package/dist/mcp/generated/docs/text-content.md +9 -4
  103. package/dist/mcp/generated/docs/theme.md +50 -4
  104. package/dist/mcp/generated/docs/tool-approval-card.md +164 -0
  105. package/dist/mcp/generated/docs/tool-btn.md +9 -4
  106. package/dist/mcp/generated/docs/tool-message.md +10 -5
  107. package/dist/mcp/generated/docs/toolcall-render.md +10 -5
  108. package/dist/mcp/generated/docs/use-animation-text.md +4 -4
  109. package/dist/mcp/generated/docs/use-clipboard.md +3 -3
  110. package/dist/mcp/generated/docs/use-command-selection.md +1 -1
  111. package/dist/mcp/generated/docs/use-custom-tab.md +1 -1
  112. package/dist/mcp/generated/docs/use-flow-node-actions.md +124 -0
  113. package/dist/mcp/generated/docs/use-full-screen.md +3 -3
  114. package/dist/mcp/generated/docs/use-global-config.md +20 -5
  115. package/dist/mcp/generated/docs/use-menu-keydown.md +1 -1
  116. package/dist/mcp/generated/docs/use-message-group.md +42 -10
  117. package/dist/mcp/generated/docs/use-observer-visible-list.md +1 -1
  118. package/dist/mcp/generated/docs/user-feedback.md +8 -3
  119. package/dist/mcp/generated/docs/user-message.md +10 -5
  120. package/dist/mcp/generated/docs/user-question-answered-card.md +106 -0
  121. package/dist/mcp/generated/docs/user-question-card.md +228 -0
  122. package/dist/mcp/generated/docs/user-question-choice.md +108 -0
  123. package/dist/mcp/generated/docs/user-question-option.md +42 -0
  124. package/dist/mcp/generated/docs/vnode-renderer.md +126 -0
  125. package/dist/mcp/generated/index.json +1105 -562
  126. package/dist/mcp/server.js +1 -1
  127. package/dist/mcp/server.js.map +1 -1
  128. package/dist/mcp/tools/list-components.d.ts +7 -6
  129. package/dist/mcp/tools/list-components.js +23 -29
  130. package/dist/mcp/tools/list-components.js.map +1 -1
  131. package/dist/mcp/tools/search-docs.js +1 -1
  132. package/dist/mcp/tools/search-docs.js.map +1 -1
  133. package/dist/mcp/utils/doc-loader.d.ts +1 -1
  134. package/dist/utils/utils.d.ts +2 -2
  135. package/package.json +4 -3
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- ScrollBtn 为底部浮动操作提供统一胶囊外壳(圆角、阴影),具体图标与行为由插槽与父级决定。 常由 MessageContainer 用于「返回底部」与「停止生成」等场景。
4
+ 停止生成或返回底部等滚动/状态按钮。 源码位置:src/components/ai-buttons/scroll-btn/scroll-btn.vue。
5
5
 
6
6
  ### 关联组件
7
7
  - **message-container** — 消息列表底部固定区挂载滚动与停止按钮
@@ -10,8 +10,13 @@ ScrollBtn 为底部浮动操作提供统一胶囊外壳(圆角、阴影),
10
10
  <!-- FULL DOC -->
11
11
 
12
12
  # ScrollBtn 滚动按钮
13
+ ## 源码事实
13
14
 
14
- > **层级**:原子组件 · **功能域**:辅助组件
15
+ - **源码位置**:`src/components/ai-buttons/scroll-btn/scroll-btn.vue`
16
+ - **能力域**:工具与反馈
17
+ - **能力说明**:停止生成或返回底部等滚动/状态按钮。
18
+
19
+ > **能力域**:工具与反馈
15
20
 
16
21
  聊天容器底部浮动操作按钮的外壳组件,提供统一的胶囊样式(圆角 26px、高 24px、阴影),内容完全由插槽定制。
17
22
 
@@ -152,4 +157,4 @@ div.ai-scroll-btn(flex,gap: 4px,width: fit-content,min-width: 84px,hei
152
157
 
153
158
  ## 关联组件
154
159
 
155
- - [MessageContainer](../molecular/message-container.md) — 底部固定区集成
160
+ - [MessageContainer](/components/setup/message-container) — 底部固定区集成
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- SelectionFooter 为消息多选(如分享)提供底部操作栏:全选、取消与确认,并反映选中数量与 loading 由 ChatContainer 在对应模式下自动挂载,业务一般无需单独引用。
4
+ 消息多选/分享模式下的底部操作栏。 源码位置:src/components/selection-footer/selection-footer.vue
5
5
 
6
6
  ### 关联组件
7
7
  - **chat-container** — 多选/分享模式由容器渲染底部栏
@@ -11,8 +11,13 @@ SelectionFooter 为消息多选(如分享)提供底部操作栏:全选、
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # SelectionFooter 选择操作栏
14
+ ## 源码事实
14
15
 
15
- > **层级**:原子组件 · **功能域**:辅助组件
16
+ - **源码位置**:`src/components/selection-footer/selection-footer.vue`
17
+ - **能力域**:输入交互
18
+ - **能力说明**:消息多选/分享模式下的底部操作栏。
19
+
20
+ > **能力域**:输入交互
16
21
 
17
22
  消息多选模式下的底部操作栏,提供全选、取消和确认操作。由 `ChatContainer` 在分享模式下自动渲染,通常不需要单独使用。
18
23
 
@@ -71,5 +76,5 @@ SelectionFooter 为消息多选(如分享)提供底部操作栏:全选、
71
76
 
72
77
  ## 关联组件
73
78
 
74
- - [ChatContainer](../molecular/chat-container.md) — 分享模式挂载
75
- - [MessageContainer](../molecular/message-container.md) — 多选与消息列表
79
+ - [ChatContainer](/components/setup/chat-container) — 分享模式挂载
80
+ - [MessageContainer](/components/setup/message-container) — 多选与消息列表
@@ -0,0 +1,91 @@
1
+ <!-- AI SUMMARY -->
2
+ ## 快速了解
3
+
4
+ 源码为空文件,没有 props、emits、slots 或渲染能力;不建议作为功能组件使用。 源码位置:src/components/ai-questions/selection-question.vue。
5
+
6
+ ### 关联组件
7
+ - **user-question-card** — 选择类问题交互请使用实际可渲染的问题卡片组件
8
+ - **user-question-option** — 单个选项行由实际问题组件渲染
9
+ - **interrupt-message** — HITL 中断消息由 InterruptMessage 分发到具体问题组件
10
+
11
+ ---
12
+ <!-- FULL DOC -->
13
+
14
+ # SelectionQuestion 选择问题占位
15
+
16
+ > **能力域**:辅助能力
17
+
18
+ `SelectionQuestion` 当前只是保留在源码目录中的空文件,占位路径为 `src/components/ai-questions/selection-question.vue`。它没有模板、脚本、样式、props、emits、slots 或任何选择交互能力。
19
+
20
+ 本文档保留该条目,是为了明确它不是当前可用的问题选择组件,避免业务误接入。
21
+
22
+ ## 源码事实
23
+
24
+ - **源码位置**:`src/components/ai-questions/selection-question.vue`
25
+ - **文件大小**:`0` 字节
26
+ - **能力说明**:源码为空文件,没有 props、emits、slots 或渲染能力;不建议作为功能组件使用。
27
+
28
+ ## 当前状态
29
+
30
+ | 项目 | 状态 |
31
+ | -------- | ---- |
32
+ | 模板 | 无 |
33
+ | 脚本逻辑 | 无 |
34
+ | 样式 | 无 |
35
+ | Props | 无 |
36
+ | Emits | 无 |
37
+ | Slots | 无 |
38
+ | Expose | 无 |
39
+
40
+ ## 不可用示例
41
+
42
+ 下面的写法不会产生选择题 UI,也不会发出确认事件:
43
+
44
+ ```vue
45
+ <template>
46
+ <!-- 不建议使用:当前组件为空文件 -->
47
+ <SelectionQuestion />
48
+ </template>
49
+ ```
50
+
51
+ ## 推荐替代
52
+
53
+ 选择类用户问题请走中断消息链路,由已实现的组件负责展示选项和处理确认:
54
+
55
+ ```vue
56
+ <template>
57
+ <UserQuestionCard
58
+ :content="content"
59
+ @confirm="handleConfirm"
60
+ />
61
+ </template>
62
+ ```
63
+
64
+ 相关文档:
65
+
66
+ - [UserQuestionCard](../agent/user-question-card.md) — 用户问题中断交互面板。
67
+ - [UserQuestionOption](../agent/user-question-option.md) — 用户问题选项行。
68
+ - [InterruptMessage](../agent/interrupt-message.md) — 中断消息分发入口。
69
+
70
+ ## API
71
+
72
+ ### Props
73
+
74
+ - 无。
75
+
76
+ ### Emits
77
+
78
+ - 无。
79
+
80
+ ### Slots
81
+
82
+ - 无。
83
+
84
+ ### Expose
85
+
86
+ - 无。
87
+
88
+ ## 使用建议
89
+
90
+ - 不建议在业务中使用该组件。
91
+ - 如果后续补齐实现,需要同步更新本文档的示例、选择交互事件、API 与关联组件。
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- ShortcutBtn 渲染单个快捷指令入口,封装图标解析与「按钮 / 下拉菜单项」两种布局,并暴露根元素供父级测量。 由 ShortcutBtns、AiSelection、ChatInput 内部复用;含 components 的快捷指令可无默认图标。 通过 click 事件传出当前 Shortcut,append 槽常用于关闭按钮。
4
+ 单个快捷指令按钮,支持默认/append 插槽和 expose focus。 源码位置:src/components/ai-shortcut/shortcut-btn/shortcut-btn.vue。
5
5
 
6
6
  ### 关联组件
7
7
  - **shortcut-btns** — 快捷指令横向列表中作为单项渲染
@@ -12,8 +12,13 @@ ShortcutBtn 渲染单个快捷指令入口,封装图标解析与「按钮 /
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # ShortcutBtn 快捷指令按钮
15
+ ## 源码事实
15
16
 
16
- > **层级**:原子组件 · **功能域**:输入交互
17
+ - **源码位置**:`src/components/ai-shortcut/shortcut-btn/shortcut-btn.vue`
18
+ - **能力域**:输入交互
19
+ - **能力说明**:单个快捷指令按钮,支持默认/append 插槽和 expose focus。
20
+
21
+ > **能力域**:输入交互
17
22
 
18
23
  单个快捷指令的渲染单元,封装图标选择逻辑和两种布局模式(按钮 / 菜单项)。
19
24
 
@@ -197,6 +202,6 @@ interface Shortcut {
197
202
 
198
203
  ## 关联组件
199
204
 
200
- - [ShortcutBtns](./shortcut-btns.md) — 快捷指令列表容器
201
- - [AiSelection](../molecular/ai-selection.md) — 划词浮窗内使用
202
- - [ChatInput](../molecular/chat-input.md) — 已选快捷指令展示
205
+ - [ShortcutBtns](/components/input/shortcut-btns) — 快捷指令列表容器
206
+ - [AiSelection](/components/input/ai-selection) — 划词浮窗内使用
207
+ - [ChatInput](/components/input/chat-input) — 已选快捷指令展示
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- ShortcutBtns 横向展示快捷指令按钮组,按容器宽度动态计算可见数量,溢出收入「更多」下拉。 默认由 ChatInput 嵌入附件槽;选中含 components 的指令后需配合 ShortcutRender 展示表单。 通过 selectShortcut 等与外层同步当前快捷指令。
4
+ 快捷指令列表入口,内部组合多个 ShortcutBtn。 源码位置:src/components/ai-shortcut/shortcut-btns/shortcut-btns.vue。
5
5
 
6
6
  ### 关联组件
7
7
  - **shortcut-btn** — 列表中每一项由 ShortcutBtn 渲染
@@ -12,8 +12,13 @@ ShortcutBtns 横向展示快捷指令按钮组,按容器宽度动态计算可
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # ShortcutBtns 快捷指令按钮组
15
+ ## 源码事实
15
16
 
16
- > **层级**:原子组件 · **功能域**:输入交互
17
+ - **源码位置**:`src/components/ai-shortcut/shortcut-btns/shortcut-btns.vue`
18
+ - **能力域**:输入交互
19
+ - **能力说明**:快捷指令列表入口,内部组合多个 ShortcutBtn。
20
+
21
+ > **能力域**:输入交互
17
22
 
18
23
  快捷指令按钮列表,内置**响应式溢出收起**:根据容器实际宽度动态计算可见数量,超出部分自动收入"更多"下拉菜单。
19
24
 
@@ -259,6 +264,6 @@ interface BaseShortcutComponent<T> {
259
264
 
260
265
  ## 关联组件
261
266
 
262
- - [ShortcutBtn](./shortcut-btn.md) — 列表项原子组件
263
- - [ChatInput](../molecular/chat-input.md) — 默认嵌入输入框底部
264
- - [ShortcutRender](../molecular/shortcut-render.md) — 表单类快捷指令的表单渲染
267
+ - [ShortcutBtn](/components/input/shortcut-btn) — 列表项基础组件
268
+ - [ChatInput](/components/input/chat-input) — 默认嵌入输入框底部
269
+ - [ShortcutRender](/components/input/shortcut-render) — 表单类快捷指令的表单渲染
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- ShortcutRender 将 Shortcut.components 声明渲染为 bkui-vue Form,支持多种控件与两列网格、必填校验及提交/取消。 通常由 ChatContainer 等布局挂载在输入区旁,formModel 与快捷指令回填联动。 与 Shortcut、ShortcutBtn 等共享同一套快捷指令数据模型。
4
+ 渲染快捷指令 components 表单并回传确认数据。 源码位置:src/components/ai-shortcut/shortcut-render/shortcut-render.vue
5
5
 
6
6
  ### 关联组件
7
7
  - **shortcut-btn** — 与快捷指令 Shortcut 元数据一致,表单提交前在列表中选中入口
@@ -12,8 +12,13 @@ ShortcutRender 将 Shortcut.components 声明渲染为 bkui-vue Form,支持多
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # ShortcutRender 快捷指令渲染器
15
+ ## 源码事实
15
16
 
16
- > **层级**:分子组件 · **功能域**:输入交互
17
+ - **源码位置**:`src/components/ai-shortcut/shortcut-render/shortcut-render.vue`
18
+ - **能力域**:输入交互
19
+ - **能力说明**:渲染快捷指令 components 表单并回传确认数据。
20
+
21
+ > **能力域**:输入交互
17
22
 
18
23
  快捷指令表单渲染组件,将 `Shortcut.components` 配置自动渲染为可交互表单(基于 bkui-vue 的 `Form`),支持 8 种控件类型、两列网格布局、必填校验和内置提交/取消操作。
19
24
 
@@ -417,6 +422,6 @@ interface BaseShortcutComponent {
417
422
 
418
423
  ## 关联组件
419
424
 
420
- - [ShortcutBtn](../atomic/shortcut-btn.md) — 与 Shortcut 数据模型一致的入口按钮
421
- - [ChatInput](./chat-input.md) — 输入区与快捷指令流程联动
422
- - [ChatContainer](./chat-container.md) — 顶层布局中挂载快捷表单
425
+ - [ShortcutBtn](/components/input/shortcut-btn) — 与 Shortcut 数据模型一致的入口按钮
426
+ - [ChatInput](/components/input/chat-input) — 输入区与快捷指令流程联动
427
+ - [ChatContainer](/components/setup/chat-container) — 顶层布局中挂载快捷表单
@@ -0,0 +1,103 @@
1
+ <!-- AI SUMMARY -->
2
+ ## 快速了解
3
+
4
+ FlowAgent 节点详情中的轻量表格展示组件。 源码位置:src/components/chat-content/flow-agent-content/simple-table.vue。
5
+
6
+ ### 关联组件
7
+ - **flow-agent-node-detail** — 节点详情中用于展示输入参数、插件输出定义和结构化输出
8
+ - **detail-section** — 通常放在详情分段容器内使用
9
+
10
+ ---
11
+ <!-- FULL DOC -->
12
+
13
+ # SimpleTable 简易表格
14
+
15
+ > **能力域**:Agent 能力
16
+
17
+ `SimpleTable` 是 FlowAgent 节点详情中的轻量只读表格,用于展示参数名、参数值、插件输出定义等结构化信息。组件只根据 `columns` 和 `data` 渲染表格,不提供排序、筛选、分页或编辑能力。
18
+
19
+ 通常不需要单独使用,主要由 `FlowAgentNodeDetail` 内部组合。
20
+
21
+ ## 源码事实
22
+
23
+ - **源码位置**:`src/components/chat-content/flow-agent-content/simple-table.vue`
24
+ - **能力说明**:FlowAgent 节点详情中的轻量表格展示组件。
25
+
26
+ ## 核心能力
27
+
28
+ - **列驱动渲染**:通过 `columns` 决定表头、字段读取 key 和单元格换行策略
29
+ - **空值兜底**:单元格值为 `null` 或 `undefined` 时显示 `--`,`0` 会正常显示为 `0`
30
+ - **空数据占位**:`data` 为空数组时渲染一行 `--`,`colspan` 等于列数
31
+ - **长文本换行**:列配置 `breakAll: true` 后,该列单元格添加 `is-break-all` 样式,适合展示 JSON 或长字符串
32
+
33
+ ## 基础用法
34
+
35
+ ```vue
36
+ <template>
37
+ <SimpleTable
38
+ :columns="columns"
39
+ :data="data"
40
+ />
41
+ </template>
42
+
43
+ <script setup lang="ts">
44
+ import SimpleTable from '@blueking/chat-x/src/components/chat-content/flow-agent-content/simple-table.vue';
45
+
46
+ const columns = [
47
+ { key: 'key', label: '参数名' },
48
+ { breakAll: true, key: 'value', label: '参数值' },
49
+ ];
50
+
51
+ const data = [
52
+ { key: 'bk_host_id', value: '10001' },
53
+ { key: 'metadata', value: '{"source":"cmdb","scope":"production"}' },
54
+ ];
55
+ </script>
56
+ ```
57
+
58
+ **渲染效果**
59
+
60
+ ## 空数据
61
+
62
+ 当 `data.length === 0` 时,组件渲染一行居中的 `--`,用于表示当前分段没有可展示数据。
63
+
64
+ ## API
65
+
66
+ ### Props
67
+
68
+ | 属性名 | 类型 | 必填 | 默认值 | 说明 |
69
+ | ------- | ------------------------ | ---- | ------ | ---------------------------- |
70
+ | columns | `SimpleTableColumn[]` | 是 | — | 表格列配置 |
71
+ | data | `Record<string, unknown>[]` | 是 | — | 表格行数据,按列 `key` 取值 |
72
+
73
+ ### Emits
74
+
75
+ - 无。
76
+
77
+ ### Slots
78
+
79
+ - 无。
80
+
81
+ ### Expose
82
+
83
+ - 无。
84
+
85
+ ## 类型定义
86
+
87
+ ```typescript
88
+ export interface SimpleTableColumn {
89
+ breakAll?: boolean; // 是否对该列单元格启用 word-break: break-all
90
+ key: string; // 从 data 行对象中读取的字段名
91
+ label: string; // 表头文案
92
+ }
93
+ ```
94
+
95
+ ## 使用建议
96
+
97
+ - 适合详情面板中的短表格,不适合承载复杂数据表能力。
98
+ - 需要展示对象值时,建议在传入前先序列化为字符串;`FlowAgentNodeDetail` 内部会对对象值执行 `JSON.stringify`。
99
+
100
+ ## 关联组件
101
+
102
+ - [FlowAgentNodeDetail](./flow-agent-node-detail.md) — 节点详情主体。
103
+ - [DetailSection](./detail-section.md) — 表格常放置在详情分段内。
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- TextContent 用 Vue 文本插值渲染纯文本气泡,不解析 HTML,适合简单提示与用户/助手纯文案。 需要 Markdown、代码块或公式时应改用 MarkdownContent 等富文本组件。
4
+ 渲染纯文本内容。 源码位置:src/components/chat-content/text-content/text-content.vue。
5
5
 
6
6
  ### 关联组件
7
7
  - **markdown-content** — 需要富文本时的替代方案
@@ -11,8 +11,13 @@ TextContent 用 Vue 文本插值渲染纯文本气泡,不解析 HTML,适合
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # TextContent 文本内容
14
+ ## 源码事实
14
15
 
15
- > **层级**:原子组件 · **功能域**:辅助组件
16
+ - **源码位置**:`src/components/chat-content/text-content/text-content.vue`
17
+ - **能力域**:内容渲染
18
+ - **能力说明**:渲染纯文本内容。
19
+
20
+ > **能力域**:内容渲染
16
21
 
17
22
  纯文本气泡组件,使用 Vue 文本插值渲染 `content`,天然防 XSS。
18
23
 
@@ -70,5 +75,5 @@ div.text-content
70
75
 
71
76
  ## 关联组件
72
77
 
73
- - [MarkdownContent](./markdown-content.md) — 富文本替代
74
- - [UserMessage](../molecular/user-message.md) — 用户消息气泡
78
+ - [MarkdownContent](/components/rendering/markdown-content) — 富文本替代
79
+ - [UserMessage](/components/message/user-message) — 用户消息气泡
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 说明通过 SCSS 变量(尺寸、颜色、z-index)与 CSS 类覆盖(chat-input、用户/助手消息、shortcut-btns、ai-markdown-body、tool-btn 等)自定义主题。 含渐变边框 mixin、ai-markdown-fade-in 与弹窗过渡。暗色示例通过根 class 切换。组件随包引入样式,业务侧按需覆写。
4
+ 说明通过 SCSS 变量(尺寸、颜色、z-index)、字号主题 CSS 变量(data-ai-size 切换 small/normal)与 CSS 类覆盖自定义主题。 ChatContainer.size 控制根节点 data-ai-size;浮层同步 document.body.dataset.aiSize。含渐变边框 mixin、骨架屏类 ai-skeleton-element 等。
5
5
 
6
6
  ### 关联组件
7
7
  - **chat-container** — 整体布局与侧栏
@@ -26,6 +26,51 @@
26
26
  import { ChatInput, MessageContainer } from '@blueking/chat-x';
27
27
  ```
28
28
 
29
+ ## 字号主题
30
+
31
+ 组件库通过根节点 `[data-ai-size]` 切换两档字号主题,内部组件统一引用 CSS 变量(均带兜底值,无 provider 时退回 `small`)。
32
+
33
+ ### 切换方式
34
+
35
+ | 方式 | 说明 |
36
+ | ---- | ---- |
37
+ | `ChatContainer` 的 `size` prop | 推荐。根节点 `.ai-chat-container` 设置 `data-ai-size`;同时通过 `useGlobalConfig` 注入 `size` 供逻辑层读取 |
38
+ | 手动设置 `data-ai-size` | 在任意祖先元素上设置 `data-ai-size="small"` 或 `data-ai-size="normal"`,后代继承 CSS 变量 |
39
+ | `document.body.dataset.aiSize` | `ChatContainer` 会自动同步,供 Tippy / Teleport 等挂载到 `body` 的浮层继承字号变量;容器卸载时清理 |
40
+
41
+ ```vue
42
+ <template>
43
+ <ChatContainer v-model="input" :messages="messages" size="normal" />
44
+ </template>
45
+ ```
46
+
47
+ ### CSS 变量
48
+
49
+ 定义于 `src/styles/size-theme.scss`,随 `global.scss` 自动引入:
50
+
51
+ | 变量名 | `small`(默认) | `normal` | 说明 |
52
+ | ------ | --------------- | -------- | ---- |
53
+ | `--ai-font-size` | `12px` | `14px` | 基准字号 |
54
+ | `--ai-line-height` | `20px` | `24px` | 标准行高 |
55
+ | `--ai-line-height-compact` | `20px` | `22px` | 紧凑行高 |
56
+ | `--ai-spacing-comfortable` | `8px` | `12px` | 舒适间距(如消息气泡水平内边距) |
57
+ | `--ai-icon-size` | `16px` | `20px` | 标准图标尺寸 |
58
+ | `--ai-icon-size-sm` | `16px` | `18px` | 小号图标尺寸 |
59
+
60
+ 组件样式中统一使用 `var(--ai-font-size, 12px)` 等形式引用,保证无 `data-ai-size` 时仍退回 small 档位。
61
+
62
+ ```scss
63
+ // 示例:在自定义样式中复用字号主题变量
64
+ .my-custom-panel {
65
+ font-size: var(--ai-font-size, 12px);
66
+ line-height: var(--ai-line-height, 20px);
67
+ }
68
+ ```
69
+
70
+ ### 骨架屏
71
+
72
+ 全局类 `.ai-skeleton-element` 用于加载占位(如 FlowAgent 节点详情、UserFeedback 原因列表)。可通过 `.skeleton-element-lg` 修饰尺寸。详见各业务组件文档中的加载态说明。
73
+
29
74
  ## SCSS 变量
30
75
 
31
76
  组件库使用以下 SCSS 变量,可以在项目中覆盖:
@@ -383,6 +428,7 @@ $selection-z-index: $shortcut-menu-z-index + 1;
383
428
 
384
429
  ## 关联组件
385
430
 
386
- - [ChatContainer](../components/molecular/chat-container.md) — 布局与主题根节点
387
- - [ChatInput](../components/molecular/chat-input.md) — 输入区变量与类名
388
- - [MessageContainer](../components/molecular/message-container.md) — 消息列表区域
431
+ - [ChatContainer](../components/setup/chat-container) — 布局与字号主题根节点(`size` prop)
432
+ - [useGlobalConfig](../composables/use-global-config) — 注入 `size` 供后代读取
433
+ - [ChatInput](../components/input/chat-input) — 输入区变量与类名
434
+ - [MessageContainer](../components/setup/message-container) — 消息列表区域
@@ -0,0 +1,164 @@
1
+ <!-- AI SUMMARY -->
2
+ ## 快速了解
3
+
4
+ 渲染 AIDevToolApproval 中断的审批信息与取消操作;outcome.success 回显时以 readonly 只读展示。 源码位置:src/components/chat-message/interrupt-message/tool-approval-card.vue。
5
+
6
+ ### 关联组件
7
+ - **interrupt-message** — InterruptMessageRender 按 reason 派发渲染
8
+
9
+ ---
10
+ <!-- FULL DOC -->
11
+
12
+ # ToolApprovalCard 审批卡片
13
+ ## 源码事实
14
+
15
+ - **源码位置**:`src/components/chat-message/interrupt-message/tool-approval-card.vue`
16
+ - **能力域**:Agent 能力
17
+ - **能力说明**:渲染 AIDevToolApproval 中断的审批信息与取消操作;`readonly` 时用于 outcome.success 只读回显。
18
+
19
+ > **能力域**:Agent 能力
20
+
21
+ AI Dev 第三方工具审批(`InterruptReason.AIDevToolApproval`)专用卡片,由 [InterruptMessageRender](/components/agent/interrupt-message) 按 `reason` 动态挂载。
22
+
23
+ > **通常不需要单独引入**;仅在需要独立预览卡片样式时使用。
24
+
25
+ ## 渲染结构
26
+
27
+ ```
28
+ ToolApprovalCard
29
+ ├── 标题栏:左侧色条 + 单据标题 + 复制图标 + 状态徽章(评审中/已通过/已拒绝/已撤销等)
30
+ ├── 字段区:单据编号、提交时间
31
+ ├── 处理人:当前处理人(overflow-tips 省略)
32
+ └── 操作区:查看单据详情(新窗口打开 url)、取消审批(仅 pending / draft 且非 readonly)
33
+ ```
34
+
35
+ `readonly` 为 `true` 时用于 `outcome.success` 结果回显:隐藏「取消审批」按钮,不接受审批取消交互。通常由 [InterruptMessageRender](/components/agent/interrupt-message) 内部传入,业务侧无需手动设置。
36
+
37
+ 状态徽章样式:
38
+
39
+ | `ticket.status` | 视觉 |
40
+ | --------------------------------------- | -------- |
41
+ | `pending`、`draft` | 蓝色评审中 |
42
+ | `approved` | 绿色通过 |
43
+ | `rejected`、`cancelled`、`expired`、`abandoned` | 红色终态 |
44
+ | `revoked` | 橙色已撤销 |
45
+
46
+ ## 基础用法(待审批)
47
+
48
+ > `ToolApprovalCard` 为 `InterruptMessageRender` 内部子组件,**未从 `@blueking/chat-x` 包入口导出**。业务侧通过构造 `InterruptMessage` 触发渲染即可;下方为类型与数据结构参考。
49
+
50
+ ```vue
51
+ <template>
52
+ <!-- 业务侧推荐:由 MessageRender / MessageContainer 自动渲染 -->
53
+ <InterruptMessageRender
54
+ :content="interruptMessage.content"
55
+ role="interrupt"
56
+ :status="interruptMessage.status"
57
+ :on-interrupt-resume="handleInterruptResume"
58
+ />
59
+ </template>
60
+
61
+ <script setup lang="ts">
62
+ import {
63
+ InterruptMessageRender,
64
+ APPROVAL_STATUS,
65
+ InterruptReason,
66
+ MessageRole,
67
+ MessageStatus,
68
+ type InterruptMessage,
69
+ type AIDevToolApprovalInterrupt,
70
+ } from '@blueking/chat-x';
71
+
72
+ const interrupt: AIDevToolApprovalInterrupt = {
73
+ id: 'interrupt_1',
74
+ reason: InterruptReason.AIDevToolApproval,
75
+ toolCallId: 'tool_call_1',
76
+ metadata: {
77
+ ticket: {
78
+ approvers: ['张三', '李四'],
79
+ sn: 'REV-2026-04-24-001',
80
+ status: APPROVAL_STATUS.PENDING,
81
+ submit_time: '2026-04-24 14:30:15',
82
+ title: '算法方案评审单',
83
+ url: 'https://example.com/tickets/001',
84
+ },
85
+ },
86
+ };
87
+
88
+ const interruptMessage: InterruptMessage = {
89
+ id: 'msg_1',
90
+ messageId: 'msg_1',
91
+ role: MessageRole.Interrupt,
92
+ status: MessageStatus.Pending,
93
+ content: {
94
+ outcome: { type: 'interrupt', interrupts: [interrupt] },
95
+ },
96
+ };
97
+
98
+ const handleInterruptResume = async (payload, interrupt) => {
99
+ console.log(payload, interrupt.id);
100
+ };
101
+ </script>
102
+ ```
103
+
104
+ **渲染效果**(文档站直接挂载 `ToolApprovalCard` 预览卡片 UI)
105
+
106
+ ## 已通过 / 已拒绝 / 已撤销
107
+
108
+ ```vue
109
+ <div>
110
+ <InterruptMessageRender
111
+ :content="{ outcome: { type: 'interrupt', interrupts: [approvedInterrupt] } }"
112
+ role="interrupt"
113
+ />
114
+ <InterruptMessageRender
115
+ :content="{ outcome: { type: 'interrupt', interrupts: [rejectedInterrupt] } }"
116
+ role="interrupt"
117
+ />
118
+ <InterruptMessageRender
119
+ :content="{ outcome: { type: 'interrupt', interrupts: [revokedInterrupt] } }"
120
+ role="interrupt"
121
+ />
122
+ </div>
123
+ ```
124
+
125
+ **渲染效果**
126
+
127
+ ## 只读回显(readonly)
128
+
129
+ `outcome.success` 时 [InterruptMessageRender](/components/agent/interrupt-message) 会将 `AIDevToolApprovalResume.payload.metadata` 还原为 `interrupt` 形态,并以 `readonly` 挂载本组件:
130
+
131
+ ```vue
132
+ <ToolApprovalCard
133
+ :interrupt="approvedInterrupt"
134
+ readonly
135
+ />
136
+ ```
137
+
138
+ **渲染效果**(待审批态下 readonly 不展示「取消审批」)
139
+
140
+ ## API
141
+
142
+ ### Props
143
+
144
+ | 属性名 | 类型 | 默认值 | 说明 |
145
+ | ----------------- | ---------------------------- | ------ | -------------------------------------------- |
146
+ | interrupt | `AIDevToolApprovalInterrupt` | — | **必填**,含 `metadata.ticket` |
147
+ | onInterruptResume | `OnInterruptResume` | — | 取消审批时触发,签名为 `(payload, interrupt)`,payload 为 `{ operation: InterruptResumeOperation.ApprovalCancel, payload: { interrupt_id } }` |
148
+ | readonly | `boolean` | — | 只读回显态(`outcome.success` 结果回显):隐藏取消审批按钮,不接受交互 |
149
+
150
+ ### Events / Slots / Expose
151
+
152
+ 无。打开链接、复制剪贴板在组件内部完成;取消审批通过 `onInterruptResume({ operation: InterruptResumeOperation.ApprovalCancel, payload: { interrupt_id: interrupt.id } }, interrupt)` 通知业务侧处理。
153
+
154
+ ## 依赖
155
+
156
+ - `bkui-vue`:`Button`、`Loading`
157
+ - `useClipboard` — 复制单据
158
+ - `v-overflow-tips` — 处理人超长省略
159
+
160
+ ## 关联组件
161
+
162
+ - [InterruptMessage 中断消息](/components/agent/interrupt-message)
163
+ - [中断类型 Interrupt](../../types/interrupt.md)
164
+ - [常量枚举 Constants](../../types/constants.md) — `APPROVAL_STATUS`、`APPROVAL_STATUS_MAP`
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- ToolBtn 为消息工具栏提供单个操作入口:内置常用 id 与 SVG 图标映射、Tippy 提示、激活与禁用态。 通常由 MessageTools 遍历配置渲染;DeleteTool 也可将其作为删除触发的视觉入口。
4
+ 工具栏图标按钮。 源码位置:src/components/ai-buttons/tool-btn/tool-btn.vue。
5
5
 
6
6
  ### 关联组件
7
7
  - **message-tools** — 父级组装多个工具按钮与交互
@@ -11,8 +11,13 @@ ToolBtn 为消息工具栏提供单个操作入口:内置常用 id 与 SVG 图
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # ToolBtn 工具按钮
14
+ ## 源码事实
14
15
 
15
- > **层级**:原子组件 · **功能域**:工具与反馈
16
+ - **源码位置**:`src/components/ai-buttons/tool-btn/tool-btn.vue`
17
+ - **能力域**:工具与反馈
18
+ - **能力说明**:工具栏图标按钮。
19
+
20
+ > **能力域**:工具与反馈
16
21
 
17
22
  消息工具栏中的单个操作按钮,内置 SVG 图标映射、Tippy 悬浮提示、激活态与禁用态,通常由 `MessageTools` 管理,一般不需要手动使用。
18
23
 
@@ -281,5 +286,5 @@ type ToolIcons =
281
286
 
282
287
  ## 关联组件
283
288
 
284
- - [MessageTools](../molecular/message-tools.md) — 工具栏容器
285
- - [DeleteTool](../molecular/delete-tool.md) — 删除确认内嵌触发
289
+ - [MessageTools](/components/feedback/message-tools) — 工具栏容器
290
+ - [DeleteTool](/components/feedback/delete-tool) — 删除确认内嵌触发