@blueking/chat-x 0.0.45-beta.6 → 0.0.45-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ag-ui/types/constants.d.ts +16 -0
- package/dist/ag-ui/types/contents.d.ts +2 -0
- package/dist/ag-ui/types/index.d.ts +2 -0
- package/dist/ag-ui/types/interrupt.d.ts +152 -0
- package/dist/ag-ui/types/messages.d.ts +2 -0
- package/dist/ag-ui/types/schema.d.ts +42 -0
- package/dist/components/ai-questions/questions-container.vue.d.ts +3 -0
- package/dist/components/ai-questions/selection-question.vue.d.ts +3 -0
- package/dist/components/chat-content/flow-agent-content/flow-agent-content.vue.d.ts +3 -0
- package/dist/components/chat-content/flow-agent-content/use-flow-agent.d.ts +4 -0
- package/dist/components/chat-content/flow-agent-content/use-flow-node-actions.d.ts +32 -0
- package/dist/components/chat-content/index.d.ts +2 -0
- package/dist/components/chat-input/chat-input.vue.d.ts +14 -8
- package/dist/components/chat-input/input-attachment/input-attachment.vue.d.ts +1 -0
- package/dist/components/chat-input/input-info-alert.vue.d.ts +6 -0
- package/dist/components/chat-message/activity-message/activity-message.vue.d.ts +4 -1
- package/dist/components/chat-message/assistant-message/assistant-message.vue.d.ts +1 -1
- package/dist/components/chat-message/interrupt-message/index.d.ts +2 -0
- package/dist/components/chat-message/interrupt-message/interrupt-message.vue.d.ts +17 -0
- package/dist/components/chat-message/interrupt-message/tool-approval-card.vue.d.ts +9 -0
- package/dist/components/chat-message/interrupt-message/user-question/index.d.ts +5 -0
- package/dist/components/chat-message/interrupt-message/user-question/use-user-question.d.ts +35 -0
- package/dist/components/chat-message/interrupt-message/user-question/user-question-answered-card.vue.d.ts +25 -0
- package/dist/components/chat-message/interrupt-message/user-question/user-question-card.vue.d.ts +25 -0
- package/dist/components/chat-message/interrupt-message/user-question/user-question-choice.vue.d.ts +13 -0
- package/dist/components/chat-message/interrupt-message/user-question/user-question-option.vue.d.ts +17 -0
- package/dist/components/chat-message/message-container/message-container.vue.d.ts +14 -7
- package/dist/components/chat-message/message-render/message-render.vue.d.ts +4 -0
- package/dist/components/index.d.ts +3 -2
- package/dist/composables/use-global-config.d.ts +3 -0
- package/dist/composables/use-message-group.d.ts +2221 -354
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/interrupt.d.ts +24 -0
- package/dist/index.css +1 -1
- package/dist/index.js +2570 -1936
- package/dist/index.js.map +1 -1
- package/dist/lang/lang.d.ts +34 -2
- package/dist/mcp/generated/docs/activity-layout.md +138 -0
- package/dist/mcp/generated/docs/activity-message.md +21 -7
- package/dist/mcp/generated/docs/ai-image.md +9 -4
- package/dist/mcp/generated/docs/ai-loading.md +11 -6
- package/dist/mcp/generated/docs/ai-prompt-list.md +42 -0
- package/dist/mcp/generated/docs/ai-selection.md +10 -5
- package/dist/mcp/generated/docs/ai-slash-editor.md +43 -0
- package/dist/mcp/generated/docs/ai-slash-input.md +43 -0
- package/dist/mcp/generated/docs/ai-slash-menu.md +42 -0
- package/dist/mcp/generated/docs/animation-text.md +9 -4
- package/dist/mcp/generated/docs/assistant-message.md +10 -5
- package/dist/mcp/generated/docs/chat-container.md +173 -19
- package/dist/mcp/generated/docs/chat-input.md +78 -10
- package/dist/mcp/generated/docs/cite-content.md +8 -3
- package/dist/mcp/generated/docs/code-content.md +9 -4
- package/dist/mcp/generated/docs/common-error-content.md +10 -5
- package/dist/mcp/generated/docs/constants.md +68 -3
- package/dist/mcp/generated/docs/content-render.md +10 -5
- package/dist/mcp/generated/docs/delete-tool.md +9 -4
- package/dist/mcp/generated/docs/desc-panel.md +9 -4
- package/dist/mcp/generated/docs/detail-section.md +93 -0
- package/dist/mcp/generated/docs/execution-summary.md +10 -5
- package/dist/mcp/generated/docs/file-content.md +9 -4
- package/dist/mcp/generated/docs/file-upload-btn.md +10 -5
- package/dist/mcp/generated/docs/flow-agent-content.md +252 -0
- package/dist/mcp/generated/docs/flow-agent-node-detail.md +240 -0
- package/dist/mcp/generated/docs/highlight-keyword.md +10 -5
- package/dist/mcp/generated/docs/image-content.md +9 -4
- package/dist/mcp/generated/docs/image-preview-group.md +9 -4
- package/dist/mcp/generated/docs/image-preview.md +10 -5
- package/dist/mcp/generated/docs/info-message.md +7 -2
- package/dist/mcp/generated/docs/input-attachment.md +43 -0
- package/dist/mcp/generated/docs/input-info-alert.md +42 -0
- package/dist/mcp/generated/docs/interrupt-message.md +216 -0
- package/dist/mcp/generated/docs/interrupt.md +377 -0
- package/dist/mcp/generated/docs/key-value-content.md +9 -4
- package/dist/mcp/generated/docs/knowledge-rag-content.md +126 -0
- package/dist/mcp/generated/docs/latex-content.md +9 -4
- package/dist/mcp/generated/docs/loading-message.md +11 -6
- package/dist/mcp/generated/docs/markdown-container.md +1 -1
- package/dist/mcp/generated/docs/markdown-content.md +13 -8
- package/dist/mcp/generated/docs/markdown-latex.md +3 -3
- package/dist/mcp/generated/docs/markdown-mermaid.md +3 -3
- package/dist/mcp/generated/docs/mermaid-content.md +9 -4
- package/dist/mcp/generated/docs/message-container.md +69 -11
- package/dist/mcp/generated/docs/message-loading.md +120 -0
- package/dist/mcp/generated/docs/message-render.md +23 -11
- package/dist/mcp/generated/docs/message-tools.md +10 -5
- package/dist/mcp/generated/docs/messages.md +75 -11
- package/dist/mcp/generated/docs/overflow-tips.md +4 -4
- package/dist/mcp/generated/docs/preview-toolbar.md +42 -0
- package/dist/mcp/generated/docs/questions-container.md +88 -0
- package/dist/mcp/generated/docs/reasoning-message.md +10 -5
- package/dist/mcp/generated/docs/reference-content.md +10 -5
- package/dist/mcp/generated/docs/reference-doc-content.md +112 -0
- package/dist/mcp/generated/docs/schema.md +93 -0
- package/dist/mcp/generated/docs/scroll-btn.md +8 -3
- package/dist/mcp/generated/docs/selection-footer.md +9 -4
- package/dist/mcp/generated/docs/selection-question.md +91 -0
- package/dist/mcp/generated/docs/shortcut-btn.md +10 -5
- package/dist/mcp/generated/docs/shortcut-btns.md +10 -5
- package/dist/mcp/generated/docs/shortcut-render.md +10 -5
- package/dist/mcp/generated/docs/simple-table.md +103 -0
- package/dist/mcp/generated/docs/text-content.md +9 -4
- package/dist/mcp/generated/docs/theme.md +50 -4
- package/dist/mcp/generated/docs/tool-approval-card.md +164 -0
- package/dist/mcp/generated/docs/tool-btn.md +9 -4
- package/dist/mcp/generated/docs/tool-message.md +10 -5
- package/dist/mcp/generated/docs/toolcall-render.md +10 -5
- package/dist/mcp/generated/docs/use-animation-text.md +4 -4
- package/dist/mcp/generated/docs/use-clipboard.md +3 -3
- package/dist/mcp/generated/docs/use-command-selection.md +1 -1
- package/dist/mcp/generated/docs/use-custom-tab.md +1 -1
- package/dist/mcp/generated/docs/use-flow-node-actions.md +124 -0
- package/dist/mcp/generated/docs/use-full-screen.md +3 -3
- package/dist/mcp/generated/docs/use-global-config.md +20 -5
- package/dist/mcp/generated/docs/use-menu-keydown.md +1 -1
- package/dist/mcp/generated/docs/use-message-group.md +40 -9
- package/dist/mcp/generated/docs/use-observer-visible-list.md +1 -1
- package/dist/mcp/generated/docs/user-feedback.md +8 -3
- package/dist/mcp/generated/docs/user-message.md +10 -5
- package/dist/mcp/generated/docs/user-question-answered-card.md +106 -0
- package/dist/mcp/generated/docs/user-question-card.md +228 -0
- package/dist/mcp/generated/docs/user-question-choice.md +108 -0
- package/dist/mcp/generated/docs/user-question-option.md +42 -0
- package/dist/mcp/generated/docs/vnode-renderer.md +126 -0
- package/dist/mcp/generated/index.json +1105 -562
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/list-components.d.ts +7 -6
- package/dist/mcp/tools/list-components.js +23 -29
- package/dist/mcp/tools/list-components.js.map +1 -1
- package/dist/mcp/tools/search-docs.js +1 -1
- package/dist/mcp/tools/search-docs.js.map +1 -1
- package/dist/mcp/utils/doc-loader.d.ts +1 -1
- package/dist/utils/utils.d.ts +2 -2
- package/package.json +4 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- AI SUMMARY -->
|
|
2
2
|
## 快速了解
|
|
3
3
|
|
|
4
|
-
|
|
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](
|
|
160
|
+
- [MessageContainer](/components/setup/message-container) — 底部固定区集成
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- AI SUMMARY -->
|
|
2
2
|
## 快速了解
|
|
3
3
|
|
|
4
|
-
|
|
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](
|
|
75
|
-
- [MessageContainer](
|
|
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
|
-
|
|
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](
|
|
201
|
-
- [AiSelection](
|
|
202
|
-
- [ChatInput](
|
|
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
|
-
|
|
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](
|
|
263
|
-
- [ChatInput](
|
|
264
|
-
- [ShortcutRender](
|
|
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
|
-
|
|
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](
|
|
421
|
-
- [ChatInput](
|
|
422
|
-
- [ChatContainer](
|
|
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
|
-
|
|
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](
|
|
74
|
-
- [UserMessage](
|
|
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
|
|
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/
|
|
387
|
-
- [
|
|
388
|
-
- [
|
|
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
|
-
|
|
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](
|
|
285
|
-
- [DeleteTool](
|
|
289
|
+
- [MessageTools](/components/feedback/message-tools) — 工具栏容器
|
|
290
|
+
- [DeleteTool](/components/feedback/delete-tool) — 删除确认内嵌触发
|