@blueking/chat-x 0.0.42 → 0.0.45-beta.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 +0 -2
- package/dist/ag-ui/types/index.d.ts +2 -0
- package/dist/ag-ui/types/interrupt.d.ts +107 -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-node-detail.vue.d.ts +0 -2
- package/dist/components/chat-input/ai-slash-input/ai-slash-input.vue.d.ts +1 -3
- package/dist/components/chat-input/chat-input.vue.d.ts +10 -9
- package/dist/components/chat-input/input-attachment/input-attachment.vue.d.ts +1 -0
- package/dist/components/chat-input/{ai-slash-input/ai-skill-list/ai-skill-list.vue.d.ts → input-info-alert.vue.d.ts} +1 -3
- 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 +8 -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 +2 -6
- package/dist/composables/use-common.d.ts +1 -1
- package/dist/composables/use-custom-tab.d.ts +1 -1
- package/dist/composables/use-message-group.d.ts +2004 -224
- package/dist/directives/overflow-tips.d.ts +1 -1
- 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 +5906 -5346
- package/dist/index.js.map +1 -1
- package/dist/lang/lang.d.ts +33 -2
- package/dist/mcp/generated/docs/activity-layout.md +138 -0
- package/dist/mcp/generated/docs/activity-message.md +18 -28
- 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 +136 -68
- package/dist/mcp/generated/docs/chat-input.md +45 -9
- 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 +11 -6
- package/dist/mcp/generated/docs/flow-agent-content.md +212 -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 +204 -0
- package/dist/mcp/generated/docs/interrupt.md +282 -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 -31
- 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 +70 -12
- package/dist/mcp/generated/docs/message-loading.md +120 -0
- package/dist/mcp/generated/docs/message-render.md +21 -9
- 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 +11 -10
- 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 +3 -3
- package/dist/mcp/generated/docs/tool-approval-card.md +148 -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-global-config.md +1 -1
- 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 +211 -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 +1061 -532
- package/dist/mcp/index.js +0 -0
- 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/plugins/index.d.ts +0 -1
- package/dist/types/custom.d.ts +0 -1
- package/dist/types/editor.d.ts +0 -6
- package/dist/types/input.d.ts +1 -1
- package/dist/types/tool.d.ts +2 -2
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/utils.d.ts +0 -1
- package/package.json +23 -21
- package/dist/plugins/markdown-bk-inline-style.d.ts +0 -20
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- AI SUMMARY -->
|
|
2
2
|
## 快速了解
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
渲染推理过程,覆盖加载、错误与 Markdown 内容展示。 源码位置:src/components/chat-message/reasoning-message/reasoning-message.vue。
|
|
5
5
|
|
|
6
6
|
### 关联组件
|
|
7
7
|
- **message-render** — 由 MessageRender 在 role 为 reasoning 时创建
|
|
@@ -12,8 +12,13 @@ ReasoningMessage 展示 AI 思维链(Chain-of-Thought)推理过程,含可
|
|
|
12
12
|
<!-- FULL DOC -->
|
|
13
13
|
|
|
14
14
|
# ReasoningMessage 推理消息
|
|
15
|
+
## 源码事实
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
- **源码位置**:`src/components/chat-message/reasoning-message/reasoning-message.vue`
|
|
18
|
+
- **能力域**:消息系统
|
|
19
|
+
- **能力说明**:渲染推理过程,覆盖加载、错误与 Markdown 内容展示。
|
|
20
|
+
|
|
21
|
+
> **能力域**:消息系统
|
|
17
22
|
|
|
18
23
|
AI 思维链(Chain-of-Thought)推理过程展示组件。由**可点击标题栏**和**内容区域**组成,内容区支持 Markdown 渲染。`duration` 传入后自动折叠一次,用户可随时点击标题展开/收起。
|
|
19
24
|
|
|
@@ -228,6 +233,6 @@ enum MessageStatus {
|
|
|
228
233
|
|
|
229
234
|
## 关联组件
|
|
230
235
|
|
|
231
|
-
- [MessageRender](
|
|
232
|
-
- [AssistantMessage](
|
|
233
|
-
- [MarkdownContent](
|
|
236
|
+
- [MessageRender](/components/message/message-render) — reasoning 角色由其实例化
|
|
237
|
+
- [AssistantMessage](/components/message/assistant-message) — 推理后常接正式回答
|
|
238
|
+
- [MarkdownContent](/components/rendering/markdown-content) — 推理正文 Markdown 渲染
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- AI SUMMARY -->
|
|
2
2
|
## 快速了解
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
渲染引用文档/来源列表。 源码位置:src/components/chat-content/reference-content/reference-content.vue。
|
|
5
5
|
|
|
6
6
|
### 关联组件
|
|
7
7
|
- **content-render** — ReferenceDocument 类型内容路由到本组件
|
|
@@ -11,10 +11,15 @@ ReferenceContent 以列表形式展示 AI 回复引用的参考文档:图标
|
|
|
11
11
|
<!-- FULL DOC -->
|
|
12
12
|
|
|
13
13
|
# ReferenceContent 引用文档内容
|
|
14
|
+
## 源码事实
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
- **源码位置**:`src/components/chat-content/reference-content/reference-content.vue`
|
|
17
|
+
- **能力域**:内容渲染
|
|
18
|
+
- **能力说明**:渲染引用文档/来源列表。
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
> **能力域**:内容渲染
|
|
21
|
+
|
|
22
|
+
引用文档列表渲染基础组件,用于展示 AI 回复中引用的参考文档,每项包含文档图标、标题、预览与跳转操作。
|
|
18
23
|
|
|
19
24
|
主要由 `ActivityMessage`(知识库问答场景)和 `ContentRender`(`reference_document` 类型内容)内部使用。
|
|
20
25
|
|
|
@@ -128,5 +133,5 @@ h(ReferenceContent, { content: props.content as ReferenceDocumentContent[] });
|
|
|
128
133
|
|
|
129
134
|
## 关联组件
|
|
130
135
|
|
|
131
|
-
- [ContentRender](
|
|
132
|
-
- [ActivityMessage](
|
|
136
|
+
- [ContentRender](/components/rendering/content-render) — 内容类型分发
|
|
137
|
+
- [ActivityMessage](/components/message/activity-message) — 活动消息内引用
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<!-- AI SUMMARY -->
|
|
2
|
+
## 快速了解
|
|
3
|
+
|
|
4
|
+
渲染引用文档类活动内容,复用 ActivityLayout 与 ReferenceContent。 源码位置:src/components/chat-content/reference-doc-content/reference-doc-content.vue。
|
|
5
|
+
|
|
6
|
+
### 关联组件
|
|
7
|
+
- **activity-message** — 非 knowledge_rag / flow_agent 活动默认可分发为引用文档活动
|
|
8
|
+
- **activity-layout** — 提供可折叠的活动容器外壳
|
|
9
|
+
- **reference-content** — 渲染引用文档列表
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
<!-- FULL DOC -->
|
|
13
|
+
|
|
14
|
+
# ReferenceDocContent 引用文档活动
|
|
15
|
+
|
|
16
|
+
> **能力域**:Agent 能力
|
|
17
|
+
|
|
18
|
+
`ReferenceDocContent` 用于渲染“引用 N 篇资料作为参考”这类活动消息。组件基于 `ActivityLayout` 提供折叠外壳,并将文档数组交给 `ReferenceContent` 展示。
|
|
19
|
+
|
|
20
|
+
通常不需要直接使用,`ActivityMessage` 会在引用文档活动场景中分发到本组件。
|
|
21
|
+
|
|
22
|
+
## 源码事实
|
|
23
|
+
|
|
24
|
+
- **源码位置**:`src/components/chat-content/reference-doc-content/reference-doc-content.vue`
|
|
25
|
+
- **能力说明**:渲染引用文档类活动内容,复用 ActivityLayout 与 ReferenceContent。
|
|
26
|
+
|
|
27
|
+
## 核心能力
|
|
28
|
+
|
|
29
|
+
- **数量标题**:根据 `content.length` 生成标题,中文为“引用 N 篇资料作为参考”
|
|
30
|
+
- **文档图标**:标题区域固定展示文档图标,不随消息状态变化
|
|
31
|
+
- **可折叠内容**:通过 `v-model:collapsed` 控制引用列表展开/收起,默认展开
|
|
32
|
+
- **引用列表复用**:文档展示、hover 操作图标、链接打开规则均由 `ReferenceContent` 负责
|
|
33
|
+
|
|
34
|
+
## 基础用法
|
|
35
|
+
|
|
36
|
+
```vue
|
|
37
|
+
<template>
|
|
38
|
+
<ReferenceDocContent
|
|
39
|
+
v-model:collapsed="collapsed"
|
|
40
|
+
:content="docs"
|
|
41
|
+
/>
|
|
42
|
+
</template>
|
|
43
|
+
|
|
44
|
+
<script setup lang="ts">
|
|
45
|
+
import { ref } from 'vue';
|
|
46
|
+
import ReferenceDocContent from '@blueking/chat-x/src/components/chat-content/reference-doc-content/reference-doc-content.vue';
|
|
47
|
+
import type { ReferenceDocumentContent } from '@blueking/chat-x';
|
|
48
|
+
|
|
49
|
+
const collapsed = ref(false);
|
|
50
|
+
|
|
51
|
+
const docs: ReferenceDocumentContent[] = [
|
|
52
|
+
{ name: '蓝鲸 Agent 接入指南', url: 'https://example.com/agent', originFile: 'https://example.com/docs/agent' },
|
|
53
|
+
{ name: '主机巡检操作手册', url: 'https://example.com/host-check', originFile: 'https://example.com/docs/host-check' },
|
|
54
|
+
];
|
|
55
|
+
</script>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**渲染效果**
|
|
59
|
+
|
|
60
|
+
## 空引用
|
|
61
|
+
|
|
62
|
+
当 `content` 为空或未传入时,标题数量显示为 `0`,引用列表为空。
|
|
63
|
+
|
|
64
|
+
## 折叠状态
|
|
65
|
+
|
|
66
|
+
## API
|
|
67
|
+
|
|
68
|
+
### Props
|
|
69
|
+
|
|
70
|
+
| 属性名 | 类型 | 必填 | 默认值 | 说明 |
|
|
71
|
+
| ---------- | ---------------------------- | ---- | ------ | -------------------------------------- |
|
|
72
|
+
| content | `ReferenceDocumentContent[]` | 否 | — | 引用文档列表 |
|
|
73
|
+
| messageUid | `string` | 否 | — | 所属消息唯一标识,当前组件暂未直接使用 |
|
|
74
|
+
|
|
75
|
+
### Models
|
|
76
|
+
|
|
77
|
+
| 名称 | 类型 | 默认值 | 说明 |
|
|
78
|
+
| --------- | --------- | ------- | ---------------- |
|
|
79
|
+
| collapsed | `boolean` | `false` | 活动内容是否折叠 |
|
|
80
|
+
|
|
81
|
+
### Emits
|
|
82
|
+
|
|
83
|
+
- 无显式 emits;`v-model:collapsed` 会产生 `update:collapsed`。
|
|
84
|
+
|
|
85
|
+
### Slots
|
|
86
|
+
|
|
87
|
+
- 无。
|
|
88
|
+
|
|
89
|
+
### Expose
|
|
90
|
+
|
|
91
|
+
- 无。
|
|
92
|
+
|
|
93
|
+
## 类型定义
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
export type ReferenceDocumentContent = {
|
|
97
|
+
name: string; // 文档标题
|
|
98
|
+
originFile: string; // 原始文件链接,存在时 ReferenceContent 显示跳转操作
|
|
99
|
+
url: string; // 预览链接或标题点击链接
|
|
100
|
+
};
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 使用建议
|
|
104
|
+
|
|
105
|
+
- 只负责引用文档活动外壳;如果只需要纯引用列表,请直接使用 [ReferenceContent](../rendering/reference-content.md)。
|
|
106
|
+
- 文档条目的过滤与操作图标规则以 `ReferenceContent` 为准,`ReferenceDocContent` 不重复处理。
|
|
107
|
+
|
|
108
|
+
## 关联组件
|
|
109
|
+
|
|
110
|
+
- [ActivityMessage](../message/activity-message.md) — 活动消息分发入口。
|
|
111
|
+
- [ActivityLayout](../helper/activity-layout.md) — 折叠活动外壳。
|
|
112
|
+
- [ReferenceContent](../rendering/reference-content.md) — 引用来源列表。
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
<!-- AI SUMMARY -->
|
|
2
|
+
## 快速了解
|
|
3
|
+
|
|
4
|
+
schema.ts 仍导出 UserSingleChoiceQuestionSchema、UserMultiChoiceQuestionSchema、UserQuestionSchema 及 FromSchema 推导类型; 新的 aidev:user_question 中断不再通过 BaseInterrupt.responseSchema 区分单选/多选,而是在 metadata.questions[].multiSelect 中描述题型。
|
|
5
|
+
|
|
6
|
+
### 关联组件
|
|
7
|
+
- **interrupt** — 新 UserQuestionInterrupt 与 UserQuestionResume 协议
|
|
8
|
+
- **user-question-card** — 根据 metadata.questions 渲染单选、多选与 Others 输入
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
<!-- FULL DOC -->
|
|
12
|
+
|
|
13
|
+
# 用户问题 Schema
|
|
14
|
+
|
|
15
|
+
> **分类**:type
|
|
16
|
+
|
|
17
|
+
`src/ag-ui/types/schema.ts` 保留了历史 JSON Schema 工具导出:
|
|
18
|
+
|
|
19
|
+
- `UserSingleChoiceQuestionSchema`
|
|
20
|
+
- `UserMultiChoiceQuestionSchema`
|
|
21
|
+
- `UserQuestionSchema`
|
|
22
|
+
- `UserSingleChoiceQuestion`
|
|
23
|
+
- `UserMultiChoiceQuestion`
|
|
24
|
+
- `UserQuestion`
|
|
25
|
+
|
|
26
|
+
新的 `InterruptReason.UserQuestion`(`'aidev:user_question'`)协议不再依赖 `BaseInterrupt.responseSchema`,而是在 `UserQuestionInterrupt.metadata.questions[]` 中用 `multiSelect` 描述单选 / 多选题,并通过 `UserQuestionResume.payload.answers` 回传回答。
|
|
27
|
+
|
|
28
|
+
## 新协议入口
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
type UserQuestionItem = {
|
|
32
|
+
header: string;
|
|
33
|
+
multiSelect: boolean;
|
|
34
|
+
options?: UserQuestionOptionItem[];
|
|
35
|
+
question: string;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
type UserQuestionResume = {
|
|
39
|
+
interruptId: string;
|
|
40
|
+
reason: InterruptReason.UserQuestion;
|
|
41
|
+
status: 'cancelled' | 'resolved';
|
|
42
|
+
payload: {
|
|
43
|
+
answers: UserQuestionAnswerItem[];
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
完整结构见 [中断类型 Interrupt](./interrupt.md#userquestioninterrupt)。
|
|
49
|
+
|
|
50
|
+
## 历史导出
|
|
51
|
+
|
|
52
|
+
### UserSingleChoiceQuestionSchema
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
const UserSingleChoiceQuestionSchema = {
|
|
56
|
+
properties: {
|
|
57
|
+
question: {
|
|
58
|
+
enum: [],
|
|
59
|
+
type: 'string',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
required: ['question'],
|
|
63
|
+
type: 'object',
|
|
64
|
+
} as const;
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### UserMultiChoiceQuestionSchema
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
const UserMultiChoiceQuestionSchema = {
|
|
71
|
+
properties: {
|
|
72
|
+
question: {
|
|
73
|
+
items: {
|
|
74
|
+
enum: [],
|
|
75
|
+
type: 'string',
|
|
76
|
+
},
|
|
77
|
+
uniqueItems: true,
|
|
78
|
+
type: 'array',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
required: ['question'],
|
|
82
|
+
type: 'object',
|
|
83
|
+
} as const;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### UserQuestionSchema
|
|
87
|
+
|
|
88
|
+
`UserQuestionSchema` 与 `UserQuestion` 仍为 `UserMultiChoiceQuestionSchema` / `UserMultiChoiceQuestion` 的别名。
|
|
89
|
+
|
|
90
|
+
## 关联文档
|
|
91
|
+
|
|
92
|
+
- [中断类型 Interrupt](./interrupt.md)
|
|
93
|
+
- [UserQuestionCard 用户问题中断](../components/agent/user-question-card)
|
|
@@ -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
|
|
|
@@ -344,7 +349,7 @@ const components: ShortcutComponent[] = [
|
|
|
344
349
|
| ------------- | ------------------------------------ | ---- | ------------------------------------------------------------------------------------------ |
|
|
345
350
|
| type | 见[表单类型](#表单组件类型) | ✓ | 控件类型;未知类型返回 `null`,不渲染 |
|
|
346
351
|
| key | `string` | ✓ | 表单字段名;`submit` 事件返回对象以此为 key;同时作为校验 property |
|
|
347
|
-
| name | `string` | — |
|
|
352
|
+
| name | `string` | — | 表单项标签(`Form.FormItem` 的 `label`) |
|
|
348
353
|
| default | `string` | — | 字段初始值;优先于 `formModel`,在 `watchEffect` 中覆盖写入 |
|
|
349
354
|
| fillBack | `boolean` | — | `true` 时映射为 `required: true`(必填校验),同时标记回填语义 |
|
|
350
355
|
| placeholder | `string` | — | 占位文本(`input` / `textarea` / `number` 可用) |
|
|
@@ -411,12 +416,8 @@ interface BaseShortcutComponent {
|
|
|
411
416
|
}
|
|
412
417
|
```
|
|
413
418
|
|
|
414
|
-
## 样式说明
|
|
415
|
-
|
|
416
|
-
表单项与控件会附加类型化 class,便于样式覆盖:`shortcut-render-form-item_{type}`(如 `_radio`、`_checkbox`),单选/多选项子项为 `shortcut-render-form-item_radio` / `shortcut-render-form-item_checkbox`。表单项标签使用 BEM 风格类名 `shortcut-render-form-label`。
|
|
417
|
-
|
|
418
419
|
## 关联组件
|
|
419
420
|
|
|
420
|
-
- [ShortcutBtn](
|
|
421
|
-
- [ChatInput](
|
|
422
|
-
- [ChatContainer](
|
|
421
|
+
- [ShortcutBtn](/components/input/shortcut-btn) — 与 Shortcut 数据模型一致的入口按钮
|
|
422
|
+
- [ChatInput](/components/input/chat-input) — 输入区与快捷指令流程联动
|
|
423
|
+
- [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) — 表格常放置在详情分段内。
|