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

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 +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/chat-input.vue.d.ts +8 -14
  9. package/dist/components/chat-input/input-attachment/input-attachment.vue.d.ts +0 -1
  10. package/dist/components/chat-message/activity-message/activity-message.vue.d.ts +1 -4
  11. package/dist/components/chat-message/assistant-message/assistant-message.vue.d.ts +1 -1
  12. package/dist/components/chat-message/message-container/message-container.vue.d.ts +7 -14
  13. package/dist/components/chat-message/message-render/message-render.vue.d.ts +0 -4
  14. package/dist/components/index.d.ts +2 -3
  15. package/dist/composables/use-global-config.d.ts +0 -3
  16. package/dist/composables/use-message-group.d.ts +823 -2609
  17. package/dist/icons/index.d.ts +0 -1
  18. package/dist/index.css +1 -1
  19. package/dist/index.js +1935 -2552
  20. package/dist/index.js.map +1 -1
  21. package/dist/lang/lang.d.ts +2 -34
  22. package/dist/mcp/generated/docs/activity-message.md +7 -21
  23. package/dist/mcp/generated/docs/ai-image.md +4 -9
  24. package/dist/mcp/generated/docs/ai-loading.md +6 -11
  25. package/dist/mcp/generated/docs/ai-selection.md +5 -10
  26. package/dist/mcp/generated/docs/animation-text.md +4 -9
  27. package/dist/mcp/generated/docs/assistant-message.md +5 -10
  28. package/dist/mcp/generated/docs/chat-container.md +19 -173
  29. package/dist/mcp/generated/docs/chat-input.md +10 -78
  30. package/dist/mcp/generated/docs/cite-content.md +3 -8
  31. package/dist/mcp/generated/docs/code-content.md +4 -9
  32. package/dist/mcp/generated/docs/common-error-content.md +5 -10
  33. package/dist/mcp/generated/docs/constants.md +3 -68
  34. package/dist/mcp/generated/docs/content-render.md +5 -10
  35. package/dist/mcp/generated/docs/delete-tool.md +4 -9
  36. package/dist/mcp/generated/docs/desc-panel.md +4 -9
  37. package/dist/mcp/generated/docs/execution-summary.md +5 -10
  38. package/dist/mcp/generated/docs/file-content.md +4 -9
  39. package/dist/mcp/generated/docs/file-upload-btn.md +5 -10
  40. package/dist/mcp/generated/docs/highlight-keyword.md +5 -10
  41. package/dist/mcp/generated/docs/image-content.md +4 -9
  42. package/dist/mcp/generated/docs/image-preview-group.md +4 -9
  43. package/dist/mcp/generated/docs/image-preview.md +5 -10
  44. package/dist/mcp/generated/docs/info-message.md +2 -7
  45. package/dist/mcp/generated/docs/key-value-content.md +4 -9
  46. package/dist/mcp/generated/docs/latex-content.md +4 -9
  47. package/dist/mcp/generated/docs/loading-message.md +6 -11
  48. package/dist/mcp/generated/docs/markdown-container.md +1 -1
  49. package/dist/mcp/generated/docs/markdown-content.md +8 -13
  50. package/dist/mcp/generated/docs/markdown-latex.md +3 -3
  51. package/dist/mcp/generated/docs/markdown-mermaid.md +3 -3
  52. package/dist/mcp/generated/docs/mermaid-content.md +4 -9
  53. package/dist/mcp/generated/docs/message-container.md +11 -69
  54. package/dist/mcp/generated/docs/message-render.md +11 -23
  55. package/dist/mcp/generated/docs/message-tools.md +5 -10
  56. package/dist/mcp/generated/docs/messages.md +11 -75
  57. package/dist/mcp/generated/docs/overflow-tips.md +4 -4
  58. package/dist/mcp/generated/docs/reasoning-message.md +5 -10
  59. package/dist/mcp/generated/docs/reference-content.md +5 -10
  60. package/dist/mcp/generated/docs/scroll-btn.md +3 -8
  61. package/dist/mcp/generated/docs/selection-footer.md +4 -9
  62. package/dist/mcp/generated/docs/shortcut-btn.md +5 -10
  63. package/dist/mcp/generated/docs/shortcut-btns.md +5 -10
  64. package/dist/mcp/generated/docs/shortcut-render.md +5 -10
  65. package/dist/mcp/generated/docs/text-content.md +4 -9
  66. package/dist/mcp/generated/docs/theme.md +4 -50
  67. package/dist/mcp/generated/docs/tool-btn.md +4 -9
  68. package/dist/mcp/generated/docs/tool-message.md +5 -10
  69. package/dist/mcp/generated/docs/toolcall-render.md +5 -10
  70. package/dist/mcp/generated/docs/use-animation-text.md +4 -4
  71. package/dist/mcp/generated/docs/use-clipboard.md +3 -3
  72. package/dist/mcp/generated/docs/use-command-selection.md +1 -1
  73. package/dist/mcp/generated/docs/use-custom-tab.md +1 -1
  74. package/dist/mcp/generated/docs/use-full-screen.md +3 -3
  75. package/dist/mcp/generated/docs/use-global-config.md +5 -20
  76. package/dist/mcp/generated/docs/use-menu-keydown.md +1 -1
  77. package/dist/mcp/generated/docs/use-message-group.md +9 -40
  78. package/dist/mcp/generated/docs/use-observer-visible-list.md +1 -1
  79. package/dist/mcp/generated/docs/user-feedback.md +3 -8
  80. package/dist/mcp/generated/docs/user-message.md +5 -10
  81. package/dist/mcp/generated/index.json +560 -1103
  82. package/dist/mcp/index.js +0 -0
  83. package/dist/mcp/server.js +1 -1
  84. package/dist/mcp/server.js.map +1 -1
  85. package/dist/mcp/tools/list-components.d.ts +6 -7
  86. package/dist/mcp/tools/list-components.js +29 -23
  87. package/dist/mcp/tools/list-components.js.map +1 -1
  88. package/dist/mcp/tools/search-docs.js +1 -1
  89. package/dist/mcp/tools/search-docs.js.map +1 -1
  90. package/dist/mcp/utils/doc-loader.d.ts +1 -1
  91. package/package.json +21 -23
  92. package/dist/ag-ui/types/interrupt.d.ts +0 -137
  93. package/dist/ag-ui/types/schema.d.ts +0 -42
  94. package/dist/components/ai-questions/questions-container.vue.d.ts +0 -3
  95. package/dist/components/ai-questions/selection-question.vue.d.ts +0 -3
  96. package/dist/components/chat-content/flow-agent-content/use-flow-node-actions.d.ts +0 -32
  97. package/dist/components/chat-content/index.d.ts +0 -2
  98. package/dist/components/chat-input/input-info-alert.vue.d.ts +0 -6
  99. package/dist/components/chat-message/interrupt-message/index.d.ts +0 -2
  100. package/dist/components/chat-message/interrupt-message/interrupt-message.vue.d.ts +0 -17
  101. package/dist/components/chat-message/interrupt-message/tool-approval-card.vue.d.ts +0 -8
  102. package/dist/components/chat-message/interrupt-message/user-question/index.d.ts +0 -5
  103. package/dist/components/chat-message/interrupt-message/user-question/use-user-question.d.ts +0 -35
  104. package/dist/components/chat-message/interrupt-message/user-question/user-question-answered-card.vue.d.ts +0 -25
  105. package/dist/components/chat-message/interrupt-message/user-question/user-question-card.vue.d.ts +0 -25
  106. package/dist/components/chat-message/interrupt-message/user-question/user-question-choice.vue.d.ts +0 -13
  107. package/dist/components/chat-message/interrupt-message/user-question/user-question-option.vue.d.ts +0 -17
  108. package/dist/icons/interrupt.d.ts +0 -24
  109. package/dist/mcp/generated/docs/activity-layout.md +0 -138
  110. package/dist/mcp/generated/docs/ai-prompt-list.md +0 -42
  111. package/dist/mcp/generated/docs/ai-slash-editor.md +0 -43
  112. package/dist/mcp/generated/docs/ai-slash-input.md +0 -43
  113. package/dist/mcp/generated/docs/ai-slash-menu.md +0 -42
  114. package/dist/mcp/generated/docs/detail-section.md +0 -93
  115. package/dist/mcp/generated/docs/flow-agent-content.md +0 -252
  116. package/dist/mcp/generated/docs/flow-agent-node-detail.md +0 -240
  117. package/dist/mcp/generated/docs/input-attachment.md +0 -43
  118. package/dist/mcp/generated/docs/input-info-alert.md +0 -42
  119. package/dist/mcp/generated/docs/interrupt-message.md +0 -204
  120. package/dist/mcp/generated/docs/interrupt.md +0 -354
  121. package/dist/mcp/generated/docs/knowledge-rag-content.md +0 -126
  122. package/dist/mcp/generated/docs/message-loading.md +0 -120
  123. package/dist/mcp/generated/docs/preview-toolbar.md +0 -42
  124. package/dist/mcp/generated/docs/questions-container.md +0 -88
  125. package/dist/mcp/generated/docs/reference-doc-content.md +0 -112
  126. package/dist/mcp/generated/docs/schema.md +0 -93
  127. package/dist/mcp/generated/docs/selection-question.md +0 -91
  128. package/dist/mcp/generated/docs/simple-table.md +0 -103
  129. package/dist/mcp/generated/docs/tool-approval-card.md +0 -148
  130. package/dist/mcp/generated/docs/use-flow-node-actions.md +0 -124
  131. package/dist/mcp/generated/docs/user-question-answered-card.md +0 -106
  132. package/dist/mcp/generated/docs/user-question-card.md +0 -228
  133. package/dist/mcp/generated/docs/user-question-choice.md +0 -108
  134. package/dist/mcp/generated/docs/user-question-option.md +0 -42
  135. package/dist/mcp/generated/docs/vnode-renderer.md +0 -126
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 聊天输入区,组合富文本输入、快捷指令、附件、引用、发送/停止等交互。 源码位置:src/components/chat-input/chat-input.vue。
4
+ ChatInput 是聊天主输入区,集成富文本编辑(/ 提示词模板、@ 资源引用)、消息引用、附件上传与快捷指令入口。 通过 prompts、resources、shortcuts 等 props 配置能力,配合 messageStatus 控制发送、流式与停止。 内部组合 ShortcutBtns、FileUploadBtn 等,与 ShortcutRender 联动完成含表单的快捷指令流程。
5
5
 
6
6
  ### 关联组件
7
7
  - **shortcut-btns** — 底部附件区默认展示的快捷指令列表
@@ -14,13 +14,8 @@
14
14
  <!-- FULL DOC -->
15
15
 
16
16
  # ChatInput 聊天输入框
17
- ## 源码事实
18
17
 
19
- - **源码位置**:`src/components/chat-input/chat-input.vue`
20
- - **能力域**:输入交互
21
- - **能力说明**:聊天输入区,组合富文本输入、快捷指令、附件、引用、发送/停止等交互。
22
-
23
- > **能力域**:输入交互
18
+ > **层级**:分子组件 · **功能域**:输入交互
24
19
 
25
20
  聊天消息输入框组件,支持快捷指令选择、资源 `@` 引用、Prompt `/` 模板、消息引用、文件上传(拖拽/粘贴/点击)等功能。
26
21
 
@@ -29,7 +24,6 @@
29
24
  ```
30
25
  chat-input-container
31
26
  ├── slot#top(容器顶部,在输入框框体外侧)
32
- ├── slot#interrupt(容器顶部,在输入框框体外侧,通常展示中断/审批提示)
33
27
  └── chat-input(框体,受 inputMaxHeight 控制)
34
28
  ├── slot#input-header(默认:cite 不为空时渲染引用区)
35
29
  ├── slot#files(默认:有上传文件时渲染文件预览区)
@@ -93,53 +87,6 @@ chat-input-container
93
87
 
94
88
  > **实现细节**:组件内部用 `messageState` 计算属性决定实际按钮状态:当 `messageStatus` 为 `pending`、`streaming` 或 `fetching` 时直接使用该状态(确保停止按钮始终可用);否则当输入为空或仅含空白字符时强制为 `disabled`,其余情况使用 `messageStatus` 的值。`fetching` 时按 Enter **不会**触发发送(避免请求中与 Loading 占位阶段重复提交)。
95
89
 
96
- ### onSendMessage 第三参数 options(UserQuestion 上下文)
97
-
98
- `ChatInput` 自身调用 `onSendMessage` 时只传前两个参数。当组件被 [ChatContainer](/components/setup/chat-container) 包裹且存在待回答 `UserQuestion` 中断时,容器会在用户点击发送时注入第三个参数:
99
-
100
- | 字段 | 类型 | 说明 |
101
- | ----------- | ------------------ | -------------------------------------------------------------------- |
102
- | `interrupt` | `Interrupt` | 当前激活的 `UserQuestionInterrupt` |
103
- | `payload` | `InterruptResume` | skip resume(`status: 'cancelled'`,`payload.answers` 为空数组) |
104
-
105
- 此场景下容器**不会**自动清空 `modelValue`,业务侧需在 `onSendMessage` 内自行处理消息发送与 `resumeAgent` 的先后顺序。结构化作答仍通过 `UserQuestionCard` → `onInterruptResume` 完成。
106
-
107
- ```typescript
108
- const handleSendMessage = async (
109
- content: UserMessage['content'],
110
- docSchema: TagSchema,
111
- options?: { interrupt?: Interrupt; payload?: InterruptResume },
112
- ) => {
113
- if (options?.interrupt && options?.payload) {
114
- await resumeAgent({ interruptId: options.interrupt.id, resume: options.payload });
115
- return;
116
- }
117
- await sendMessage(content, docSchema);
118
- };
119
- ```
120
-
121
- ### sendDisabledTip(业务阻塞发送)
122
-
123
- 当业务侧需要临时阻止发送但仍允许用户输入时,可传入 `sendDisabledTip`。组件会置灰发送按钮,按钮 tooltip 展示该文案,并拦截点击发送、按 Enter 发送和 `triggerSendMessage()`:
124
-
125
- ```vue
126
- <template>
127
- <ChatInput
128
- v-model="inputValue"
129
- message-status="complete"
130
- :send-disabled-tip="interruptTip"
131
- :on-send-message="handleSendMessage"
132
- :on-stop-sending="handleStopSending"
133
- >
134
- <template #interrupt>
135
- <div class="input-alert">{{ interruptTip }}</div>
136
- </template>
137
- </ChatInput>
138
- </template>
139
- ```
140
-
141
- **渲染效果**
142
-
143
90
  ### Complete(可发送)
144
91
 
145
92
  ### Streaming(流式输出中,显示停止按钮)
@@ -423,12 +370,11 @@ const handleSendMessage = async (
423
370
 
424
371
  ## 自定义插槽
425
372
 
426
- 组件提供 6 个插槽用于自定义各区域内容:
373
+ 组件提供 5 个插槽用于自定义各区域内容:
427
374
 
428
375
  | 插槽名 | 位置 | 默认行为 |
429
376
  | -------------- | ------------------------------------------ | ------------------------------------------ |
430
377
  | `top` | 框体外部顶部(`.chat-input` 上方) | 无 |
431
- | `interrupt` | 框体外部顶部,位于 `top` 之后 | 无,通常用于展示审批/中断提示 |
432
378
  | `input-header` | 框体内部顶部(编辑器上方) | `cite` 不为空时渲染引用区(`CiteContent`) |
433
379
  | `files` | 文件预览区 | 有上传文件时渲染 `FileContent` |
434
380
  | `attachment` | 底部工具栏快捷指令区(FileUploadBtn 右侧) | 快捷指令按钮列表 / 已选快捷指令 |
@@ -447,11 +393,6 @@ const handleSendMessage = async (
447
393
  <div class="input-tips">当前模型: GPT-4 · 剩余 Token: 12,800</div>
448
394
  </template>
449
395
 
450
- <!-- 框体外顶部,适合展示中断、审批等业务提示 -->
451
- <template #interrupt>
452
- <div class="input-alert">当前会话有待审批单,暂时不能继续发送</div>
453
- </template>
454
-
455
396
  <!-- 替换引用区,可自定义引用样式 -->
456
397
  <template #input-header>
457
398
  <div class="custom-header">自定义头部内容</div>
@@ -481,7 +422,7 @@ const handleSendMessage = async (
481
422
  </template>
482
423
  ```
483
424
 
484
- **渲染效果**(顶部自定义模型信息与中断提示)
425
+ **渲染效果**(顶部自定义模型信息提示)
485
426
 
486
427
  ## Expose(模板引用)
487
428
 
@@ -526,10 +467,9 @@ const handleSendMessage = async (
526
467
  | placeholder | `string` | 见默认值 | - | 编辑器占位符,支持多行 |
527
468
  | inputMaxHeight | `number` | `200` | - | 框体最大高度(px),有文件时自动加上文件预览区高度 |
528
469
  | defaultUploadFiles | `UploadFile[]` | - | - | 预设已上传的文件列表 |
529
- | sendDisabledTip | `string` | - | - | 业务阻塞发送时的 tooltip 提示;传入后发送按钮置灰,点击、Enter 与 `triggerSendMessage()` 均不会发送 |
530
470
  | supportUpload | `boolean` | `true` | - | 是否显示文件上传按钮 |
531
471
  | tippyOptions | `AITippyProps` | — | - | 透传给 FileUploadBtn 和 InputAttachment 的 tooltip 配置 |
532
- | onSendMessage | `(content: UserMessage['content'], docSchema: TagSchema, options?: { interrupt?: Interrupt; payload?: InterruptResume }) => Promise<void>` | - | - | 发送消息回调,无文件时 content 为字符串,有文件时为数组;经 [ChatContainer](/components/setup/chat-container) 使用时,存在待回答 UserQuestion 会传入第三参数 `options` |
472
+ | onSendMessage | `(content: UserMessage['content'], docSchema: TagSchema) => Promise<void>` | - | - | 发送消息回调,无文件时 content 为字符串,有文件时为数组 |
533
473
  | onStopSending | `() => Promise<void>` | - | - | 停止发送回调,点击停止按钮时触发 |
534
474
  | onUpload | `(file: File) => Promise<{ download_url?: string }>` | - | - | 文件上传回调(每次单文件) |
535
475
 
@@ -554,7 +494,6 @@ const handleSendMessage = async (
554
494
  | 插槽名 | 参数 | 说明 |
555
495
  | ------------ | ---------------------------------- | ---------------------------------------------------------- |
556
496
  | top | - | 框体(`.chat-input`)外部顶部,适合展示模型/Token 信息 |
557
- | interrupt | - | 框体外部顶部,位于 `top` 后,适合展示审批/中断提示 |
558
497
  | input-header | - | 框体内顶部,替换引用区(`CiteContent`) |
559
498
  | files | `{ files: Partial<UploadFile>[] }` | 文件预览区 |
560
499
  | attachment | - | 底部快捷指令区,`FileUploadBtn` 在其左侧,不受此 slot 影响 |
@@ -625,13 +564,6 @@ type SendContent =
625
564
  // 有文件时:数组
626
565
  { type: 'binary'; url?: string; mimeType: string; filename: string } | { type: 'text'; text: string }
627
566
  >;
628
-
629
- // onSendMessage 完整签名(第三参数由 ChatContainer 在 UserQuestion 场景注入)
630
- type OnSendMessage = (
631
- content: SendContent,
632
- docSchema: TagSchema,
633
- options?: { interrupt?: Interrupt; payload?: InterruptResume },
634
- ) => Promise<void>;
635
567
  ```
636
568
 
637
569
  ## 完整集成示例
@@ -696,8 +628,8 @@ type OnSendMessage = (
696
628
 
697
629
  ## 关联组件
698
630
 
699
- - [ShortcutBtns](/components/input/shortcut-btns) — 底部附件区默认快捷指令列表
700
- - [ShortcutBtn](/components/input/shortcut-btn) — 已选快捷指令单按钮展示
701
- - [ShortcutRender](/components/input/shortcut-render) — 含表单的快捷指令表单渲染
702
- - [ChatContainer](/components/setup/chat-container) — 顶层布局中包裹输入区
703
- - [CiteContent](/components/rendering/cite-content) — 消息引用区内容展示
631
+ - [ShortcutBtns](../atomic/shortcut-btns.md) — 底部附件区默认快捷指令列表
632
+ - [ShortcutBtn](../atomic/shortcut-btn.md) — 已选快捷指令单按钮展示
633
+ - [ShortcutRender](./shortcut-render.md) — 含表单的快捷指令表单渲染
634
+ - [ChatContainer](./chat-container.md) — 顶层布局中包裹输入区
635
+ - [CiteContent](../atomic/cite-content.md) — 消息引用区内容展示
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 渲染输入或消息中的引用片段。 源码位置:src/components/chat-content/cite-content/cite-content.vue。
4
+ CiteContent 在输入区上方以紧凑条带展示被引用文本片段,单行截断并可选关闭按钮移除引用。 常与 ChatInput 的引用预览区配合,不执行 HTML 渲染。
5
5
 
6
6
  ### 关联组件
7
7
  - **chat-input** — 输入区展示待发送引用内容
@@ -10,13 +10,8 @@
10
10
  <!-- FULL DOC -->
11
11
 
12
12
  # CiteContent 引用内容
13
- ## 源码事实
14
13
 
15
- - **源码位置**:`src/components/chat-content/cite-content/cite-content.vue`
16
- - **能力域**:内容渲染
17
- - **能力说明**:渲染输入或消息中的引用片段。
18
-
19
- > **能力域**:内容渲染
14
+ > **层级**:原子组件 · **功能域**:辅助组件
20
15
 
21
16
  展示被引用文本片段的紧凑条带组件。固定高度 28px,左侧引用图标 + 单行截断文本 + 可选关闭图标,背景灰色(`#f5f7fa`)。
22
17
 
@@ -140,4 +135,4 @@ const message = {
140
135
 
141
136
  ## 关联组件
142
137
 
143
- - [ChatInput](/components/input/chat-input) — 引用区常见挂载位置
138
+ - [ChatInput](../molecular/chat-input.md) — 引用区常见挂载位置
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 渲染 Markdown 代码块,支持高亮、复制和 header 插槽。 源码位置:src/components/markdown-token/code-content/code-content.vue。
4
+ CodeContent 接收 markdown-it fence/code_block token,按行 highlight.js 高亮并带语言标签与复制。 必填 props 为 token 数组;mounted 事件用于滚动联动等。 由 MarkdownContent 在解析代码块时挂载,面向流式增量更新。
5
5
 
6
6
  ### 关联组件
7
7
  - **markdown-content** — 解析 Markdown 后生成 fence token 并渲染本组件
@@ -10,15 +10,10 @@
10
10
  <!-- FULL DOC -->
11
11
 
12
12
  # CodeContent 代码块渲染
13
- ## 源码事实
14
13
 
15
- - **源码位置**:`src/components/markdown-token/code-content/code-content.vue`
16
- - **能力域**:内容渲染
17
- - **能力说明**:渲染 Markdown 代码块,支持高亮、复制和 header 插槽。
14
+ > **层级**:原子组件 · **功能域**:内容渲染
18
15
 
19
- > **能力域**:内容渲染
20
-
21
- 代码块渲染基础组件,专为 **Markdown 流式输出**设计。接收 `markdown-it` token 数组,基于 `highlight.js`(github-dark 主题)实现逐行语法高亮,顶部固定深色头部展示语言名和复制按钮。
16
+ 代码块渲染原子组件,专为 **Markdown 流式输出**设计。接收 `markdown-it` token 数组,基于 `highlight.js`(github-dark 主题)实现逐行语法高亮,顶部固定深色头部展示语言名和复制按钮。
22
17
 
23
18
  ## 组件结构
24
19
 
@@ -209,4 +204,4 @@ import type { Token } from 'markdown-it';
209
204
 
210
205
  ## 关联组件
211
206
 
212
- - [MarkdownContent](/components/rendering/markdown-content) — 解析并传入 code fence token
207
+ - [MarkdownContent](./markdown-content.md) — 解析并传入 code fence token
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 展示统一错误提示内容。 源码位置:src/components/chat-content/common-error-content/common-error-content.vue。
4
+ CommonErrorContent 以红色错误图标加文案展示失败态,布局为 flex 横排,文本为纯文本插值。 在 MarkdownContent、ReasoningMessage 等链路上当 status 为 error 时自动替换内容区。
5
5
 
6
6
  ### 关联组件
7
7
  - **markdown-content** — Markdown 渲染错误态展示
@@ -11,15 +11,10 @@
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # CommonErrorContent 通用错误内容
14
- ## 源码事实
15
14
 
16
- - **源码位置**:`src/components/chat-content/common-error-content/common-error-content.vue`
17
- - **能力域**:内容渲染
18
- - **能力说明**:展示统一错误提示内容。
15
+ > **层级**:原子组件 · **功能域**:辅助组件
19
16
 
20
- > **能力域**:内容渲染
21
-
22
- 错误状态消息渲染基础组件。红色 `ErrorIcon`(14×14px,绝对定位)+ 文本区域,`display: flex` 水平排列。
17
+ 错误状态消息渲染原子组件。红色 `ErrorIcon`(14×14px,绝对定位)+ 文本区域,`display: flex` 水平排列。
23
18
 
24
19
  通常由上层组件在 `status === 'error'` 时自动渲染,无需手动使用。
25
20
 
@@ -71,5 +66,5 @@
71
66
 
72
67
  ## 关联组件
73
68
 
74
- - [MarkdownContent](/components/rendering/markdown-content) — Markdown 错误态
75
- - [ReasoningMessage](/components/message/reasoning-message) — 推理错误态
69
+ - [MarkdownContent](./markdown-content.md) — Markdown 错误态
70
+ - [ReasoningMessage](../molecular/reasoning-message.md) — 推理错误态
@@ -36,7 +36,6 @@ enum MessageRole {
36
36
  HiddenSystem = 'hidden-system',
37
37
  HiddenUser = 'hidden-user',
38
38
  Info = 'info',
39
- Interrupt = 'interrupt',
40
39
  Loading = 'loading',
41
40
  Pause = 'pause',
42
41
  Placeholder = 'placeholder',
@@ -73,70 +72,6 @@ enum MessageStatus {
73
72
  | --------------- | ---- |
74
73
  | `Fetching` | 请求中:与 `useMessageGroup` 在末尾用户消息后注入的 Loading 占位(`LOADING_MESSAGE_ID`)配合时,`ChatContainer` 会将传入输入区与列表底部的状态推导为该值,便于展示「停止」与禁止重复发送。 |
75
74
 
76
- ### InterruptReason
77
-
78
- human-in-the-loop 中断原因枚举,用于 `Interrupt.reason` 区分中断类型并选择对应的 UI 渲染器。
79
-
80
- ```typescript
81
- enum InterruptReason {
82
- AIDevToolApproval = 'aidev:tool_approval',
83
- UserQuestion = 'aidev:user_question',
84
- }
85
- ```
86
-
87
- ### APPROVAL_STATUS
88
-
89
- AI Dev 工具审批单状态枚举,`AIDevToolApprovalInterrupt.metadata.ticket.status` 使用该类型。
90
-
91
- ```typescript
92
- enum APPROVAL_STATUS {
93
- ABANDONED = 'abandoned',
94
- APPROVED = 'approved',
95
- CANCELLED = 'cancelled',
96
- DRAFT = 'draft',
97
- EXPIRED = 'expired',
98
- PENDING = 'pending',
99
- REJECTED = 'rejected',
100
- REVOKED = 'revoked',
101
- }
102
- ```
103
-
104
- ### APPROVAL_STATUS_MAP
105
-
106
- 审批单状态到展示文案的映射,供 `ToolApprovalCard` 等组件使用:
107
-
108
- ```typescript
109
- const APPROVAL_STATUS_MAP: Record<APPROVAL_STATUS, string> = {
110
- [APPROVAL_STATUS.ABANDONED]: '已废弃',
111
- [APPROVAL_STATUS.APPROVED]: '已通过',
112
- [APPROVAL_STATUS.CANCELLED]: '已取消',
113
- [APPROVAL_STATUS.DRAFT]: '待审批',
114
- [APPROVAL_STATUS.EXPIRED]: '已过期',
115
- [APPROVAL_STATUS.PENDING]: '待审批',
116
- [APPROVAL_STATUS.REJECTED]: '已拒绝',
117
- [APPROVAL_STATUS.REVOKED]: '已撤销',
118
- };
119
- ```
120
-
121
- | 状态值 | 展示文案 |
122
- | ----------- | -------- |
123
- | `pending` | 待审批 |
124
- | `draft` | 待审批 |
125
- | `approved` | 已通过 |
126
- | `rejected` | 已拒绝 |
127
- | `cancelled` | 已取消 |
128
- | `expired` | 已过期 |
129
- | `abandoned` | 已废弃 |
130
- | `revoked` | 已撤销 |
131
-
132
- ### RunFinishedOutcome
133
-
134
- AG-UI `RUN_FINISHED` 事件的结束结果类型。中断结果不再是字符串枚举,而是对象联合类型;`type: 'interrupt'` 时,中断列表放在 `interrupts` 字段中。
135
-
136
- ```typescript
137
- type RunFinishedOutcome = { interrupts: Interrupt[]; type: 'interrupt' } | { type: 'success' };
138
- ```
139
-
140
75
  ### MessageContentType
141
76
 
142
77
  消息内容类型枚举:
@@ -303,6 +238,6 @@ console.log(
303
238
 
304
239
  ## 关联组件
305
240
 
306
- - [MessageTools](../components/feedback/message-tools) — 消息工具栏
307
- - [ChatInput](../components/input/chat-input) — 输入与状态
308
- - [MessageContainer](../components/setup/message-container) — 工具与消息展示
241
+ - [MessageTools](../components/molecular/message-tools.md) — 消息工具栏
242
+ - [ChatInput](../components/molecular/chat-input.md) — 输入与状态
243
+ - [MessageContainer](../components/molecular/message-container.md) — 工具与消息展示
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- MessageContentType 分发 Markdown、文本、引用、键值、图片等内容。 源码位置:src/components/chat-content/content-render/content-render.vue。
4
+ ContentRender 按消息 content 类型分发:字符串走 Markdown 管线,数组可走引用文档等;可扩展自定义 slot。 主要 props 为 content、status,与 MessageRender、AssistantMessage 等配合使用。 内置与 MarkdownContent、ReferenceContent 等原子/分子组件衔接。
5
5
 
6
6
  ### 关联组件
7
7
  - **markdown-content** — 文本类 Markdown 正文的默认渲染实现
@@ -12,13 +12,8 @@
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # ContentRender 内容渲染器
15
- ## 源码事实
16
15
 
17
- - **源码位置**:`src/components/chat-content/content-render/content-render.vue`
18
- - **能力域**:内容渲染
19
- - **能力说明**:按 MessageContentType 分发 Markdown、文本、引用、键值、图片等内容。
20
-
21
- > **能力域**:内容渲染
16
+ > **层级**:分子组件 · **功能域**:内容渲染
22
17
 
23
18
  消息内容渲染分发组件,根据 `content` 的 JavaScript 类型自动选择渲染方式:字符串 → `MarkdownContent`(Markdown 渲染),数组 → `ReferenceContent`(引用列表)。
24
19
 
@@ -239,6 +234,6 @@ enum MessageStatus {
239
234
 
240
235
  ## 关联组件
241
236
 
242
- - [MarkdownContent](/components/rendering/markdown-content) — 字符串 Markdown 正文
243
- - [ReferenceContent](/components/rendering/reference-content) — 引用文档数组
244
- - [AssistantMessage](/components/message/assistant-message) — assistant 消息中默认使用
237
+ - [MarkdownContent](../atomic/markdown-content.md) — 字符串 Markdown 正文
238
+ - [ReferenceContent](../atomic/reference-content.md) — 引用文档数组
239
+ - [AssistantMessage](./assistant-message.md) — assistant 消息中默认使用
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 消息删除二次确认工具。 源码位置:src/components/message-tools/delete-tool/delete-tool.vue
4
+ DeleteTool 在点击删除图标后弹出 Tippy 确认层,需再次点击「删除」才 emit confirm,避免误删。 触发器为 ToolBtn;MessageTools 在工具 id 为 delete 时用本组件替换普通 ToolBtn
5
5
 
6
6
  ### 关联组件
7
7
  - **tool-btn** — 删除图标与触发入口
@@ -11,13 +11,8 @@
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # DeleteTool 删除确认按钮
14
- ## 源码事实
15
14
 
16
- - **源码位置**:`src/components/message-tools/delete-tool/delete-tool.vue`
17
- - **能力域**:工具与反馈
18
- - **能力说明**:消息删除二次确认工具。
19
-
20
- > **能力域**:工具与反馈
15
+ > **层级**:分子组件 · **功能域**:工具与反馈
21
16
 
22
17
  删除操作的二次确认组件。点击删除图标后弹出确认弹窗,用户需再次点击"删除"按钮才会触发 `confirm` 事件,防止误删。内部由 `ToolBtn`(触发按钮)+ `Tippy`(确认弹窗)组合实现。
23
18
 
@@ -189,5 +184,5 @@ export type DeleteToolProps = IToolBtn & {
189
184
 
190
185
  ## 关联组件
191
186
 
192
- - [ToolBtn](/components/feedback/tool-btn) — 触发按钮
193
- - [MessageTools](/components/feedback/message-tools) — 工具栏中 delete 替换入口
187
+ - [ToolBtn](../atomic/tool-btn.md) — 触发按钮
188
+ - [MessageTools](./message-tools.md) — 工具栏中 delete 替换入口
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 将文本或 JSON 内容降级为可读描述面板。 源码位置:src/components/tool-call/desc-panel/desc-panel.vue。
4
+ DescPanel 将描述字符串尝试 JSON 解析为键值列表展示,否则按纯文本输出,用于工具调用详情折叠区。 内部对键与值使用 HighlightKeyword 支持搜索高亮。
5
5
 
6
6
  ### 关联组件
7
7
  - **toolcall-render** — 工具调用详情中渲染描述与参数
@@ -11,13 +11,8 @@
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # DescPanel 描述面板
14
- ## 源码事实
15
14
 
16
- - **源码位置**:`src/components/tool-call/desc-panel/desc-panel.vue`
17
- - **能力域**:内容渲染
18
- - **能力说明**:将文本或 JSON 内容降级为可读描述面板。
19
-
20
- > **能力域**:内容渲染
15
+ > **层级**:原子组件 · **功能域**:辅助组件
21
16
 
22
17
  工具调用(ToolCall)详情面板的描述区域组件,主要用于 `ToolcallRender` 内部的折叠面板中。
23
18
 
@@ -139,5 +134,5 @@ JSON 数组同样被视为 `object`,以数组索引(`0:`、`1:`…)作为
139
134
 
140
135
  ## 关联组件
141
136
 
142
- - [ToolcallRender](/components/agent/toolcall-render) — 主要使用场景
143
- - [HighlightKeyword](/components/helper/highlight-keyword) — 键值高亮
137
+ - [ToolcallRender](../molecular/toolcall-render.md) — 主要使用场景
138
+ - [HighlightKeyword](./highlight-keyword.md) — 键值高亮
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 按消息流提取执行摘要,支持关键词定位和消息渲染。 源码位置:src/components/execution-summary/execution-summary.vue。
4
+ ExecutionSummary 以时间线汇总工具调用与 FlowAgent 等活动记录,支持关键词过滤与 HighlightKeyword 高亮。 点击可 emit 定位到会话中对应消息;内部用 MessageRender 渲染摘要条目中的消息片段。
5
5
 
6
6
  ### 关联组件
7
7
  - **message-render** — 摘要列表内渲染消息内容
@@ -12,13 +12,8 @@
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # ExecutionSummary 执行摘要
15
- ## 源码事实
16
15
 
17
- - **源码位置**:`src/components/execution-summary/execution-summary.vue`
18
- - **能力域**:Agent 能力
19
- - **能力说明**:按消息流提取执行摘要,支持关键词定位和消息渲染。
20
-
21
- > **能力域**:Agent 能力
16
+ > **层级**:分子组件 · **功能域**:辅助组件
22
17
 
23
18
  执行摘要面板组件,以时间线形式展示对话中的工具调用和 FlowAgent 活动记录。支持关键词搜索过滤和点击定位到对话中的消息位置。
24
19
 
@@ -126,6 +121,6 @@ interface MessageGroup {
126
121
 
127
122
  ## 关联组件
128
123
 
129
- - [MessageRender](/components/message/message-render) — 摘要内消息渲染
130
- - [HighlightKeyword](/components/helper/highlight-keyword) — 搜索高亮
131
- - [ChatContainer](/components/setup/chat-container) — 侧栏挂载场景
124
+ - [MessageRender](./message-render.md) — 摘要内消息渲染
125
+ - [HighlightKeyword](../atomic/highlight-keyword.md) — 搜索高亮
126
+ - [ChatContainer](./chat-container.md) — 侧栏挂载场景
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 渲染文件附件,支持图片预览和下载事件。 源码位置:src/components/chat-content/file-content/file-content.vue。
4
+ FileContent 展示消息或输入区附件列表:图片显示缩略图并可进入 ImagePreview,文档以卡片展示文件名、类型与大小。 支持删除、图片加载失败占位及仅有远端文件名的降级展示。
5
5
 
6
6
  ### 关联组件
7
7
  - **image-preview** — 点击图片缩略图打开全屏预览
@@ -11,13 +11,8 @@
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # FileContent 文件内容展示
14
- ## 源码事实
15
14
 
16
- - **源码位置**:`src/components/chat-content/file-content/file-content.vue`
17
- - **能力域**:媒体文件
18
- - **能力说明**:渲染文件附件,支持图片预览和下载事件。
19
-
20
- > **能力域**:媒体文件
15
+ > **层级**:分子组件 · **功能域**:文件与图片
21
16
 
22
17
  文件列表展示组件,支持图片缩略图预览、点击图片全屏预览(`ImagePreview`)、文档卡片展示(文件名/扩展名/文件大小)、图片加载失败占位和删除操作。
23
18
 
@@ -301,5 +296,5 @@ const formatFileSize = (file?: File): string => {
301
296
 
302
297
  ## 关联组件
303
298
 
304
- - [ImagePreview](/components/medias/image-preview) — 图片全屏预览
305
- - [UserMessage](/components/message/user-message) — 用户消息内附件展示
299
+ - [ImagePreview](./image-preview.md) — 图片全屏预览
300
+ - [UserMessage](./user-message.md) — 用户消息内附件展示
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 文件选择按钮,封装 input[type=file] 并输出选择事件。 源码位置:src/components/ai-buttons/file-upload-btn/file-upload-btn.vue。
4
+ FileUploadBtn 提供隐藏 file input 与图标按钮,选择后在按钮层过滤空文件与超大单文件并 emit upload; 个数上限不在此截断,由 ChatInput 等与 FileContent 配合完成「选择 → 展示 → 发送」链路。
5
5
 
6
6
  ### 关联组件
7
7
  - **chat-input** — 输入区附件上传按钮常见挂载位置
@@ -11,13 +11,8 @@
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # FileUploadBtn 文件上传按钮
14
- ## 源码事实
15
14
 
16
- - **源码位置**:`src/components/ai-buttons/file-upload-btn/file-upload-btn.vue`
17
- - **能力域**:输入交互
18
- - **能力说明**:文件选择按钮,封装 input[type=file] 并输出选择事件。
19
-
20
- > **能力域**:输入交互
15
+ > **层级**:原子组件 · **功能域**:文件与图片
21
16
 
22
17
  聊天输入框内置的文件上传触发按钮,点击后弹出系统文件选择框。内部包含隐藏的 `<input type="file">` 与可见的图标按钮;在按钮层对**单文件**做大小与空文件过滤,**已选文件个数上限**由上层(如 `ChatInput`)统一校验并提示,避免按钮与输入区各弹一条错误提示。
23
18
 
@@ -61,7 +56,7 @@
61
56
 
62
57
  > `multiple` prop 声明存在但当前模板中 `input` 的 `multiple` 属性为**硬编码**(非 `:multiple="multiple"` 绑定),始终允许多选,该 prop 暂时无实际效果。
63
58
 
64
- > **`maxFiles` prop**:当前版本在按钮内**不参与截断或计数校验**,仅作类型与文档预留;列表最多几个文件由上层(如 `ChatInput` 的 `MAX_UPLOAD_FILES`)控制。详见 [ChatInput 文件上传](/components/input/chat-input#file-upload)。
59
+ > **`maxFiles` prop**:当前版本在按钮内**不参与截断或计数校验**,仅作类型与文档预留;列表最多几个文件由上层(如 `ChatInput` 的 `MAX_UPLOAD_FILES`)控制。详见 [ChatInput 文件上传](../molecular/chat-input.md#file-upload)。
65
60
 
66
61
  ## 基础用法
67
62
 
@@ -159,5 +154,5 @@ type AITippyProps = Partial<Pick<TippyOptions, 'appendTo' | 'placement' | 'zInde
159
154
 
160
155
  ## 关联组件
161
156
 
162
- - [ChatInput](/components/input/chat-input) — 默认内置上传入口
163
- - [FileContent](/components/medias/file-content) — 选中文件列表展示
157
+ - [ChatInput](../molecular/chat-input.md) — 默认内置上传入口
158
+ - [FileContent](../molecular/file-content.md) — 选中文件列表展示
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 根据注入关键词高亮文本片段。 源码位置:src/components/highlight-keyword/highlight-keyword.ts。
4
+ HighlightKeyword 为函数式组件,从 inject 读取关键词并将匹配片段包在带样式 span 中,用于对话内搜索与列表过滤高亮。 ToolcallRender、DescPanel、FlowAgent 等场景组合使用。
5
5
 
6
6
  ### 关联组件
7
7
  - **toolcall-render** — 工具调用标题与状态文案高亮
@@ -12,13 +12,8 @@
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # HighlightKeyword 关键词高亮
15
- ## 源码事实
16
15
 
17
- - **源码位置**:`src/components/highlight-keyword/highlight-keyword.ts`
18
- - **能力域**:辅助能力
19
- - **能力说明**:根据注入关键词高亮文本片段。
20
-
21
- > **能力域**:辅助能力
16
+ > **层级**:原子组件 · **功能域**:辅助组件
22
17
 
23
18
  函数式组件,用于在文本中高亮匹配的搜索关键词。通过 `useKeywordInject` 从上层注入关键词,自动将匹配部分包裹在带高亮样式的 `<span>` 中。
24
19
 
@@ -144,6 +139,6 @@ const { keywordMatched } = useKeywordMatch(() => [props.title, props.description
144
139
 
145
140
  ## 关联组件
146
141
 
147
- - [ToolcallRender](/components/agent/toolcall-render) — 工具调用头部高亮
148
- - [DescPanel](/components/rendering/desc-panel) — 详情面板键值高亮
149
- - [ExecutionSummary](/components/agent/execution-summary) — 执行摘要搜索
142
+ - [ToolcallRender](../molecular/toolcall-render.md) — 工具调用头部高亮
143
+ - [DescPanel](./desc-panel.md) — 详情面板键值高亮
144
+ - [ExecutionSummary](../molecular/execution-summary.md) — 执行摘要搜索
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- 渲染 Markdown 图片 token 源码位置:src/components/markdown-token/image-content/image-content.vue。
4
+ ImageContent Markdown 解析到图片 token 时渲染,对流式拼接中的 URL 做防抖与预加载,并用模块级缓存避免重复闪烁。 三态展示加载中、成功与失败,通常由 MarkdownContent 自动挂载而非业务直接引用。
5
5
 
6
6
  ### 关联组件
7
7
  - **markdown-content** — 解析图片 token 后挂载本组件
@@ -10,15 +10,10 @@
10
10
  <!-- FULL DOC -->
11
11
 
12
12
  # ImageContent 图片渲染
13
- ## 源码事实
14
13
 
15
- - **源码位置**:`src/components/markdown-token/image-content/image-content.vue`
16
- - **能力域**:媒体文件
17
- - **能力说明**:渲染 Markdown 图片 token。
14
+ > **层级**:原子组件 · **功能域**:文件与图片
18
15
 
19
- > **能力域**:媒体文件
20
-
21
- Markdown Token 层的图片渲染基础组件,被 `MarkdownContent` 在解析到图片 token 时自动调用,通常无需手动引入。
16
+ Markdown Token 层的图片渲染原子组件,被 `MarkdownContent` 在解析到图片 token 时自动调用,通常无需手动引入。
22
17
 
23
18
  核心能力:**流式 URL 防闪烁**(debounce 稳定判断 + throttle 预加载)、**全局缓存**(模块级 `Set` 跨实例共享)、**三态渲染**(加载中 / 成功 / 失败)。
24
19
 
@@ -180,4 +175,4 @@ URL = 完整 URL → isValidUrl=true → throttle 触发 preloadImage
180
175
 
181
176
  ## 关联组件
182
177
 
183
- - [MarkdownContent](/components/rendering/markdown-content) — 图片 token 渲染入口
178
+ - [MarkdownContent](./markdown-content.md) — 图片 token 渲染入口