@blueking/chat-x 0.0.43 → 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.
Files changed (148) hide show
  1. package/README.md +1 -1
  2. package/dist/ag-ui/types/constants.d.ts +16 -0
  3. package/dist/ag-ui/types/contents.d.ts +0 -3
  4. package/dist/ag-ui/types/index.d.ts +2 -0
  5. package/dist/ag-ui/types/interrupt.d.ts +107 -0
  6. package/dist/ag-ui/types/messages.d.ts +2 -0
  7. package/dist/ag-ui/types/schema.d.ts +42 -0
  8. package/dist/components/ai-buttons/tool-btn/tool-btn.vue.d.ts +1 -11
  9. package/dist/components/ai-questions/questions-container.vue.d.ts +3 -0
  10. package/dist/components/ai-questions/selection-question.vue.d.ts +3 -0
  11. package/dist/components/chat-content/flow-agent-content/flow-agent-content.vue.d.ts +0 -1
  12. package/dist/components/chat-content/flow-agent-content/flow-agent-node-detail.vue.d.ts +0 -2
  13. package/dist/components/chat-input/ai-slash-input/ai-slash-input.vue.d.ts +1 -3
  14. package/dist/components/chat-input/chat-input.vue.d.ts +10 -9
  15. package/dist/components/chat-input/input-attachment/input-attachment.vue.d.ts +1 -0
  16. 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
  17. package/dist/components/chat-message/interrupt-message/index.d.ts +2 -0
  18. package/dist/components/chat-message/interrupt-message/interrupt-message.vue.d.ts +17 -0
  19. package/dist/components/chat-message/interrupt-message/tool-approval-card.vue.d.ts +8 -0
  20. package/dist/components/chat-message/interrupt-message/user-question/index.d.ts +5 -0
  21. package/dist/components/chat-message/interrupt-message/user-question/use-user-question.d.ts +35 -0
  22. package/dist/components/chat-message/interrupt-message/user-question/user-question-answered-card.vue.d.ts +25 -0
  23. package/dist/components/chat-message/interrupt-message/user-question/user-question-card.vue.d.ts +25 -0
  24. package/dist/components/chat-message/interrupt-message/user-question/user-question-choice.vue.d.ts +13 -0
  25. package/dist/components/chat-message/interrupt-message/user-question/user-question-option.vue.d.ts +17 -0
  26. package/dist/components/chat-message/message-container/message-container.vue.d.ts +14 -7
  27. package/dist/components/chat-message/message-render/message-render.vue.d.ts +4 -0
  28. package/dist/components/index.d.ts +2 -6
  29. package/dist/composables/index.d.ts +0 -1
  30. package/dist/composables/use-common.d.ts +1 -1
  31. package/dist/composables/use-custom-tab.d.ts +1 -1
  32. package/dist/composables/use-message-group.d.ts +2004 -227
  33. package/dist/icons/execution.d.ts +0 -3
  34. package/dist/icons/index.d.ts +1 -1
  35. package/dist/icons/interrupt.d.ts +24 -0
  36. package/dist/index.css +1 -1
  37. package/dist/index.js +5059 -4674
  38. package/dist/index.js.map +1 -1
  39. package/dist/lang/lang.d.ts +33 -5
  40. package/dist/mcp/generated/docs/activity-layout.md +138 -0
  41. package/dist/mcp/generated/docs/activity-message.md +18 -28
  42. package/dist/mcp/generated/docs/ai-image.md +9 -4
  43. package/dist/mcp/generated/docs/ai-loading.md +11 -6
  44. package/dist/mcp/generated/docs/ai-prompt-list.md +42 -0
  45. package/dist/mcp/generated/docs/ai-selection.md +10 -5
  46. package/dist/mcp/generated/docs/ai-slash-editor.md +43 -0
  47. package/dist/mcp/generated/docs/ai-slash-input.md +43 -0
  48. package/dist/mcp/generated/docs/ai-slash-menu.md +42 -0
  49. package/dist/mcp/generated/docs/animation-text.md +9 -4
  50. package/dist/mcp/generated/docs/assistant-message.md +10 -5
  51. package/dist/mcp/generated/docs/chat-container.md +144 -93
  52. package/dist/mcp/generated/docs/chat-input.md +45 -9
  53. package/dist/mcp/generated/docs/cite-content.md +8 -3
  54. package/dist/mcp/generated/docs/code-content.md +9 -4
  55. package/dist/mcp/generated/docs/common-error-content.md +10 -5
  56. package/dist/mcp/generated/docs/constants.md +68 -3
  57. package/dist/mcp/generated/docs/content-render.md +10 -5
  58. package/dist/mcp/generated/docs/delete-tool.md +9 -4
  59. package/dist/mcp/generated/docs/desc-panel.md +9 -4
  60. package/dist/mcp/generated/docs/detail-section.md +93 -0
  61. package/dist/mcp/generated/docs/execution-summary.md +10 -5
  62. package/dist/mcp/generated/docs/file-content.md +9 -4
  63. package/dist/mcp/generated/docs/file-upload-btn.md +11 -6
  64. package/dist/mcp/generated/docs/flow-agent-content.md +212 -0
  65. package/dist/mcp/generated/docs/flow-agent-node-detail.md +240 -0
  66. package/dist/mcp/generated/docs/highlight-keyword.md +10 -5
  67. package/dist/mcp/generated/docs/image-content.md +9 -4
  68. package/dist/mcp/generated/docs/image-preview-group.md +9 -4
  69. package/dist/mcp/generated/docs/image-preview.md +10 -5
  70. package/dist/mcp/generated/docs/info-message.md +7 -2
  71. package/dist/mcp/generated/docs/input-attachment.md +43 -0
  72. package/dist/mcp/generated/docs/input-info-alert.md +42 -0
  73. package/dist/mcp/generated/docs/interrupt-message.md +204 -0
  74. package/dist/mcp/generated/docs/interrupt.md +282 -0
  75. package/dist/mcp/generated/docs/key-value-content.md +9 -4
  76. package/dist/mcp/generated/docs/knowledge-rag-content.md +126 -0
  77. package/dist/mcp/generated/docs/latex-content.md +9 -4
  78. package/dist/mcp/generated/docs/loading-message.md +11 -6
  79. package/dist/mcp/generated/docs/markdown-container.md +1 -1
  80. package/dist/mcp/generated/docs/markdown-content.md +13 -31
  81. package/dist/mcp/generated/docs/markdown-latex.md +3 -3
  82. package/dist/mcp/generated/docs/markdown-mermaid.md +3 -3
  83. package/dist/mcp/generated/docs/mermaid-content.md +9 -4
  84. package/dist/mcp/generated/docs/message-container.md +70 -12
  85. package/dist/mcp/generated/docs/message-loading.md +120 -0
  86. package/dist/mcp/generated/docs/message-render.md +21 -9
  87. package/dist/mcp/generated/docs/message-tools.md +13 -8
  88. package/dist/mcp/generated/docs/messages.md +75 -11
  89. package/dist/mcp/generated/docs/overflow-tips.md +4 -4
  90. package/dist/mcp/generated/docs/preview-toolbar.md +42 -0
  91. package/dist/mcp/generated/docs/questions-container.md +88 -0
  92. package/dist/mcp/generated/docs/reasoning-message.md +10 -5
  93. package/dist/mcp/generated/docs/reference-content.md +10 -5
  94. package/dist/mcp/generated/docs/reference-doc-content.md +112 -0
  95. package/dist/mcp/generated/docs/schema.md +93 -0
  96. package/dist/mcp/generated/docs/scroll-btn.md +8 -3
  97. package/dist/mcp/generated/docs/selection-footer.md +9 -4
  98. package/dist/mcp/generated/docs/selection-question.md +91 -0
  99. package/dist/mcp/generated/docs/shortcut-btn.md +10 -5
  100. package/dist/mcp/generated/docs/shortcut-btns.md +10 -5
  101. package/dist/mcp/generated/docs/shortcut-render.md +11 -10
  102. package/dist/mcp/generated/docs/simple-table.md +103 -0
  103. package/dist/mcp/generated/docs/text-content.md +9 -4
  104. package/dist/mcp/generated/docs/theme.md +3 -3
  105. package/dist/mcp/generated/docs/tool-approval-card.md +148 -0
  106. package/dist/mcp/generated/docs/tool-btn.md +15 -41
  107. package/dist/mcp/generated/docs/tool-message.md +10 -5
  108. package/dist/mcp/generated/docs/toolcall-render.md +10 -5
  109. package/dist/mcp/generated/docs/use-animation-text.md +4 -4
  110. package/dist/mcp/generated/docs/use-clipboard.md +3 -3
  111. package/dist/mcp/generated/docs/use-command-selection.md +1 -1
  112. package/dist/mcp/generated/docs/use-custom-tab.md +1 -1
  113. package/dist/mcp/generated/docs/use-global-config.md +1 -1
  114. package/dist/mcp/generated/docs/use-menu-keydown.md +1 -1
  115. package/dist/mcp/generated/docs/use-message-group.md +40 -9
  116. package/dist/mcp/generated/docs/use-observer-visible-list.md +1 -1
  117. package/dist/mcp/generated/docs/user-feedback.md +8 -3
  118. package/dist/mcp/generated/docs/user-message.md +10 -5
  119. package/dist/mcp/generated/docs/user-question-answered-card.md +106 -0
  120. package/dist/mcp/generated/docs/user-question-card.md +211 -0
  121. package/dist/mcp/generated/docs/user-question-choice.md +108 -0
  122. package/dist/mcp/generated/docs/user-question-option.md +42 -0
  123. package/dist/mcp/generated/docs/vnode-renderer.md +126 -0
  124. package/dist/mcp/generated/index.json +1062 -551
  125. package/dist/mcp/index.js +0 -0
  126. package/dist/mcp/server.js +1 -1
  127. package/dist/mcp/server.js.map +1 -1
  128. package/dist/mcp/tools/list-components.d.ts +7 -6
  129. package/dist/mcp/tools/list-components.js +23 -29
  130. package/dist/mcp/tools/list-components.js.map +1 -1
  131. package/dist/mcp/tools/search-docs.js +1 -1
  132. package/dist/mcp/tools/search-docs.js.map +1 -1
  133. package/dist/mcp/utils/doc-loader.d.ts +1 -1
  134. package/dist/plugins/index.d.ts +0 -1
  135. package/dist/types/custom.d.ts +0 -1
  136. package/dist/types/editor.d.ts +0 -6
  137. package/dist/types/input.d.ts +1 -1
  138. package/dist/types/tool.d.ts +3 -3
  139. package/dist/utils/index.d.ts +0 -1
  140. package/dist/utils/utils.d.ts +0 -1
  141. package/package.json +23 -21
  142. package/dist/components/chat-content/flow-agent-content/flow-agent-state.d.ts +0 -34
  143. package/dist/components/chat-content/flow-agent-content/use-flow-agent.d.ts +0 -47
  144. package/dist/components/chat-content/flow-agent-content/use-flow-tab.d.ts +0 -18
  145. package/dist/composables/use-full-screen.d.ts +0 -17
  146. package/dist/icons/screen.d.ts +0 -6
  147. package/dist/mcp/generated/docs/use-full-screen.md +0 -114
  148. package/dist/plugins/markdown-bk-inline-style.d.ts +0 -20
@@ -43,7 +43,6 @@ export declare const lang: {
43
43
  readonly 失败: "Failed";
44
44
  readonly 挂起: "Pending";
45
45
  readonly 待执行: "To Be Executed";
46
- readonly 跳过: "Skipped";
47
46
  readonly 详情: "Details";
48
47
  readonly 节点: "Node";
49
48
  readonly 节点配置: "Node Config";
@@ -69,6 +68,25 @@ export declare const lang: {
69
68
  readonly 暂无数据: "No Data";
70
69
  readonly '\u8C03\u7528 MCP\uFF1A': "Call MCP:";
71
70
  readonly 更多: "More";
71
+ readonly 算法方案评审单: "Algorithm Plan Review Ticket";
72
+ readonly 评审中: "Reviewing";
73
+ readonly 已废弃: "Abandoned";
74
+ readonly 已批准: "Approved";
75
+ readonly 已通过: "Approved";
76
+ readonly 已取消: "Cancelled";
77
+ readonly 已过期: "Expired";
78
+ readonly 已拒绝: "Rejected";
79
+ readonly 已撤销: "Revoked";
80
+ readonly 单据编号: "Ticket No.";
81
+ readonly 提交时间: "Submitted At";
82
+ readonly 当前处理人: "Current Handler";
83
+ readonly 无: "None";
84
+ readonly 查看单据详情: "View Ticket Detail";
85
+ readonly 复制单据: "Copy Ticket";
86
+ readonly 复制单据链接: "Copy Ticket Link";
87
+ readonly 取消审批: "Cancel Approval";
88
+ readonly '\u5F53\u524D\u4F1A\u8BDD\u6709 {count} \u4E2A\u5F85\u5BA1\u6279\u5355\uFF0C\u5982\u9700\u7EE7\u7EED\uFF0C\u8BF7\u5148\u53D6\u6D88\u5BA1\u6279': "There are {count} pending approval tickets in the current conversation. To continue, cancel approval first.";
89
+ readonly 暂不支持的中断消息: "Unsupported interrupt message";
72
90
  readonly 检索中: "Searching";
73
91
  readonly 检索完成: "Search Completed";
74
92
  readonly 上传文件: "Upload File";
@@ -97,8 +115,18 @@ export declare const lang: {
97
115
  readonly '\u4F60\u597D\uFF0C\u6211\u662F\u5C0F\u9CB8': "Hello, I am BlueKing AI Bot";
98
116
  readonly 清空搜索: "Clear Search";
99
117
  readonly 搜索结果为空: "Search Result is Empty";
100
- readonly 有效证据: "Valid Evidence";
101
- readonly 全屏: "Full Screen";
102
- readonly 退出全屏: "Exit Full Screen";
118
+ readonly 请选择以继续: "Please choose to continue";
119
+ readonly 继续: "Continue";
120
+ readonly '\u6536\u5230\u4FE1\u606F\uFF1A': "Received: ";
121
+ readonly 待审批: "Pending";
122
+ readonly 已审批: "Approved";
123
+ readonly 完成: "Done";
124
+ readonly 跳过: "Skip";
125
+ readonly 单选: "Single";
126
+ readonly 多选: "Multiple";
127
+ readonly 其他: "Others";
128
+ readonly 回答内容: "Answers";
129
+ readonly 已回复: "Replied";
130
+ readonly '\u8BF7\u8F93\u5165...': "Please enter...";
103
131
  };
104
- export declare const t: (key: keyof typeof lang) => "Send" | "Stop" | "Ask AI" | "Copy" | "Share" | "Like" | "Unsatisfied" | "Delete" | "Quote" | "Regenerate" | "Regenerating will clear the content below" | "Submit" | "Cancel" | "Preview Content" | "Jump to Detail" | "Call Tool:" | "Calling..." | "Call Success" | "Call Failed" | "Tell us your thoughts" | "What makes you satisfied?" | "What makes you dissatisfied?" | "Return Content" | "Edit" | "Deep Thinking" | "Loading image..." | "Failed to load image" | "Thinking..." | "Thinking Completed" | "Thinking Failed" | "Copy Success" | "Copy Failed" | "Return to bottom" | "Stop generating" | "Stopping" | "Duration" | "Parameters" | "Description" | "Execution Status" | "Running" | "Success" | "Failed" | "Pending" | "To Be Executed" | "Skipped" | "Details" | "Node" | "Node Config" | "Node Output" | "Basic Info" | "Flow Template" | "Node Name" | "Step Name" | "Execution Plan" | "Optional" | "Failure Handler" | "Timeout Control" | "Yes" | "No" | "Input Params" | "Output Params" | "Param Name" | "Param Value" | "Name" | "Structured Output" | "Manual Skip" | "No Data" | "Call MCP:" | "More" | "Searching" | "Search Completed" | "Upload File" | "Requesting..." | "Cancel satisfied" | "Cancel dissatisfied" | "Confirm delete this answer?" | "This operation cannot be undone. Please proceed with caution!" | "Preview" | "Zoom Out" | "Zoom In" | "Rotate" | "Download" | "Sorry, image loading failed. Please try reloading." | "Reset" | "Reload" | "W" | "H" | "Upload Image" | "Search keyword" | "Select date" | "Locate in Chat" | "Select All" | "Confirm" | "Upload Image, up to 3 images supported, max 2.4MB each" | "Hello, I am BlueKing AI Bot" | "Clear Search" | "Search Result is Empty" | "Valid Evidence" | "Full Screen" | "Exit Full Screen" | "发送" | "停止" | "问问小鲸" | "复制" | "分享" | "点赞" | "不满意" | "删除" | "引用" | "重新生成" | "重新生成将清空下文内容" | "提交" | "取消" | "预览内容" | "跳转详情" | "调用工具:" | "调用中" | "调用成功" | "调用失败" | "说出您的想法" | "什么原因让你满意?" | "什么原因让你不满意?" | "返回内容" | "编辑" | "深度思考" | "图片加载中..." | "图片加载失败" | "思考中" | "已思考完成" | "思考失败" | "复制成功" | "复制失败" | "返回底部" | "停止生成" | "正在停止" | "耗时" | "参数" | "描述" | "执行情况" | "执行中" | "成功" | "失败" | "挂起" | "待执行" | "跳过" | "详情" | "节点" | "节点配置" | "节点输出" | "基础信息" | "流程模板" | "节点名称" | "步骤名称" | "执行方案" | "是否可选" | "失败处理" | "超时控制" | "是" | "否" | "输入参数" | "输出参数" | "参数名" | "参数值" | "名称" | "变量说明" | "结构化输出" | "手动跳过" | "暂无数据" | "调用 MCP:" | "更多" | "检索中" | "检索完成" | "上传文件" | "请求中..." | "取消满意" | "取消不满意" | "确认删除该回答?" | "删除操作无法撤回,请谨慎操作!" | "预览" | "缩小" | "放大" | "旋转" | "下载" | "抱歉,图片加载失败,可尝试重新加载" | "重置" | "重新加载" | "宽" | "高" | "上传图片" | "搜索 关键字" | "选择日期" | "在对话中定位" | "全选" | "确定" | "上传图片, 最多支持上传 3 个, 最大支持 2.4MB" | "你好,我是小鲸" | "清空搜索" | "搜索结果为空" | "有效证据" | "全屏" | "退出全屏";
132
+ export declare const t: (key: keyof typeof lang) => "Send" | "Stop" | "Ask AI" | "Copy" | "Share" | "Like" | "Unsatisfied" | "Delete" | "Quote" | "Regenerate" | "Regenerating will clear the content below" | "Submit" | "Cancel" | "Preview Content" | "Jump to Detail" | "Call Tool:" | "Calling..." | "Call Success" | "Call Failed" | "Tell us your thoughts" | "What makes you satisfied?" | "What makes you dissatisfied?" | "Return Content" | "Edit" | "Deep Thinking" | "Loading image..." | "Failed to load image" | "Thinking..." | "Thinking Completed" | "Thinking Failed" | "Copy Success" | "Copy Failed" | "Return to bottom" | "Stop generating" | "Stopping" | "Duration" | "Parameters" | "Description" | "Execution Status" | "Running" | "Success" | "Failed" | "Pending" | "To Be Executed" | "Details" | "Node" | "Node Config" | "Node Output" | "Basic Info" | "Flow Template" | "Node Name" | "Step Name" | "Execution Plan" | "Optional" | "Failure Handler" | "Timeout Control" | "Yes" | "No" | "Input Params" | "Output Params" | "Param Name" | "Param Value" | "Name" | "Structured Output" | "Manual Skip" | "No Data" | "Call MCP:" | "More" | "Algorithm Plan Review Ticket" | "Reviewing" | "Abandoned" | "Approved" | "Cancelled" | "Expired" | "Rejected" | "Revoked" | "Ticket No." | "Submitted At" | "Current Handler" | "None" | "View Ticket Detail" | "Copy Ticket" | "Copy Ticket Link" | "Cancel Approval" | "There are {count} pending approval tickets in the current conversation. To continue, cancel approval first." | "Unsupported interrupt message" | "Searching" | "Search Completed" | "Upload File" | "Requesting..." | "Cancel satisfied" | "Cancel dissatisfied" | "Confirm delete this answer?" | "This operation cannot be undone. Please proceed with caution!" | "Preview" | "Zoom Out" | "Zoom In" | "Rotate" | "Download" | "Sorry, image loading failed. Please try reloading." | "Reset" | "Reload" | "W" | "H" | "Upload Image" | "Search keyword" | "Select date" | "Locate in Chat" | "Select All" | "Confirm" | "Upload Image, up to 3 images supported, max 2.4MB each" | "Hello, I am BlueKing AI Bot" | "Clear Search" | "Search Result is Empty" | "Please choose to continue" | "Continue" | "Received: " | "Done" | "Skip" | "Single" | "Multiple" | "Others" | "Answers" | "Replied" | "Please enter..." | "发送" | "停止" | "问问小鲸" | "复制" | "分享" | "点赞" | "不满意" | "删除" | "引用" | "重新生成" | "重新生成将清空下文内容" | "提交" | "取消" | "预览内容" | "跳转详情" | "调用工具:" | "调用中" | "调用成功" | "调用失败" | "说出您的想法" | "什么原因让你满意?" | "什么原因让你不满意?" | "返回内容" | "编辑" | "深度思考" | "图片加载中..." | "图片加载失败" | "思考中" | "已思考完成" | "思考失败" | "复制成功" | "复制失败" | "返回底部" | "停止生成" | "正在停止" | "耗时" | "参数" | "描述" | "执行情况" | "执行中" | "成功" | "失败" | "挂起" | "待执行" | "详情" | "节点" | "节点配置" | "节点输出" | "基础信息" | "流程模板" | "节点名称" | "步骤名称" | "执行方案" | "是否可选" | "失败处理" | "超时控制" | "是" | "否" | "输入参数" | "输出参数" | "参数名" | "参数值" | "名称" | "变量说明" | "结构化输出" | "手动跳过" | "暂无数据" | "调用 MCP:" | "更多" | "算法方案评审单" | "评审中" | "已废弃" | "已批准" | "已通过" | "已取消" | "已过期" | "已拒绝" | "已撤销" | "单据编号" | "提交时间" | "当前处理人" | "无" | "查看单据详情" | "复制单据" | "复制单据链接" | "取消审批" | "当前会话有 {count} 个待审批单,如需继续,请先取消审批" | "暂不支持的中断消息" | "检索中" | "检索完成" | "上传文件" | "请求中..." | "取消满意" | "取消不满意" | "确认删除该回答?" | "删除操作无法撤回,请谨慎操作!" | "预览" | "缩小" | "放大" | "旋转" | "下载" | "抱歉,图片加载失败,可尝试重新加载" | "重置" | "重新加载" | "宽" | "高" | "上传图片" | "搜索 关键字" | "选择日期" | "在对话中定位" | "全选" | "确定" | "上传图片, 最多支持上传 3 个, 最大支持 2.4MB" | "你好,我是小鲸" | "清空搜索" | "搜索结果为空" | "请选择以继续" | "继续" | "收到信息:" | "待审批" | "已审批" | "完成" | "跳过" | "单选" | "多选" | "其他" | "回答内容" | "已回复" | "请输入...";
@@ -0,0 +1,138 @@
1
+ <!-- AI SUMMARY -->
2
+ ## 快速了解
3
+
4
+ 活动消息的折叠布局容器,提供 title/default 插槽。 源码位置:src/components/chat-content/activity-layout/activity-layout.vue。
5
+
6
+ ### 关联组件
7
+ - **activity-message** — 活动消息通过本组件承载标题栏与内容区
8
+ - **knowledge-rag-content** — 知识召回活动复用本组件展示加载标题与正文
9
+ - **reference-doc-content** — 引用文档活动复用本组件展示文档数量与引用列表
10
+ - **flow-agent-content** — FlowAgent 活动复用本组件,但隐藏默认折叠箭头
11
+
12
+ ---
13
+ <!-- FULL DOC -->
14
+
15
+ # ActivityLayout 活动布局
16
+
17
+ > **能力域**:辅助能力
18
+
19
+ `ActivityLayout` 是活动消息的通用折叠布局容器,负责渲染标题栏、折叠箭头和内容区域。它不关心活动内容类型本身,标题和正文均通过插槽传入,因此常被 `KnowledgeRagContent`、`ReferenceDocContent`、`FlowAgentContent` 等活动组件复用。
20
+
21
+ 通常不需要业务侧直接使用;如果要新增一种活动消息内容,可以用它作为标题/内容外壳。
22
+
23
+ ## 源码事实
24
+
25
+ - **源码位置**:`src/components/chat-content/activity-layout/activity-layout.vue`
26
+ - **能力说明**:活动消息的折叠布局容器,提供 `title` / `default` 插槽。
27
+
28
+ ## 核心能力
29
+
30
+ - **标题栏点击折叠**:点击标题栏切换 `collapsed`,内容区通过 `v-show="!collapsed"` 显示或隐藏
31
+ - **双向绑定**:通过 `v-model:collapsed` 让父组件控制展开/收起状态,默认展开
32
+ - **标题插槽透传状态**:`title` 插槽会收到 `{ collapsed }`,可根据折叠状态调整标题内容
33
+ - **默认折叠箭头**:非 FlowAgent 活动自动在标题右侧显示折叠箭头
34
+ - **FlowAgent 特例**:`activityType === MessageContentType.FlowAgent` 时隐藏默认折叠箭头,由 FlowAgent 自己渲染标题交互
35
+
36
+ ## 基础用法
37
+
38
+ ```vue
39
+ <template>
40
+ <ActivityLayout v-model:collapsed="collapsed">
41
+ <template #title="{ collapsed }">
42
+ <span class="ai-activity-message-title-icon">
43
+ <DocumentIcon style="font-size: 12px" />
44
+ </span>
45
+ <span class="ai-activity-message-title-text">
46
+ {{ collapsed ? '已折叠' : '引用 2 篇资料作为参考' }}
47
+ </span>
48
+ </template>
49
+
50
+ <div style="padding: 0 14px;">
51
+ 活动内容
52
+ </div>
53
+ </ActivityLayout>
54
+ </template>
55
+
56
+ <script setup lang="ts">
57
+ import { ref } from 'vue';
58
+ import ActivityLayout from '@blueking/chat-x/src/components/chat-content/activity-layout/activity-layout.vue';
59
+ import { DocumentIcon } from '@blueking/chat-x/src/icons/content';
60
+
61
+ const collapsed = ref(false);
62
+ </script>
63
+ ```
64
+
65
+ **渲染效果**
66
+
67
+ ## 折叠状态
68
+
69
+ `collapsed` 默认为 `false`。设置为 `true` 时只展示标题栏,正文内容保留在 DOM 中但通过 `v-show` 隐藏。
70
+
71
+ ## FlowAgent 活动
72
+
73
+ 传入 `activityType="flow_agent"` 时,`ActivityLayout` 不渲染右侧默认折叠箭头。该场景下标题栏通常由 `FlowAgentContent` 自己展示状态统计、加载图标和展开箭头。
74
+
75
+ ```vue
76
+ <ActivityLayout
77
+ v-model:collapsed="collapsed"
78
+ :activity-type="MessageContentType.FlowAgent"
79
+ >
80
+ <template #title>
81
+ <span>执行情况: 成功 2 / 失败 1</span>
82
+ </template>
83
+ <div>FlowAgent 节点列表</div>
84
+ </ActivityLayout>
85
+ ```
86
+
87
+ ## 组件结构
88
+
89
+ ```
90
+ .ai-activity-message
91
+ ├── .ai-activity-message-title(点击切换 collapsed)
92
+ │ ├── title slot(slot props: { collapsed })
93
+ │ └── CollapsedIcon(activityType !== flow_agent 时显示)
94
+ └── .ai-activity-message-content(v-show="!collapsed")
95
+ └── default slot
96
+ ```
97
+
98
+ ## API
99
+
100
+ ### Props
101
+
102
+ | 属性名 | 类型 | 必填 | 默认值 | 说明 |
103
+ | ------------ | -------------------- | ---- | ------ | --------------------------------------------- |
104
+ | activityType | `MessageContentType` | 否 | — | 活动类型;为 `flow_agent` 时隐藏默认折叠箭头 |
105
+
106
+ ### Models
107
+
108
+ | 名称 | 类型 | 默认值 | 说明 |
109
+ | --------- | --------- | ------- | ---------------- |
110
+ | collapsed | `boolean` | `false` | 活动内容是否折叠 |
111
+
112
+ ### Emits
113
+
114
+ - 无显式 emits;`v-model:collapsed` 会产生 `update:collapsed`。
115
+
116
+ ### Slots
117
+
118
+ | 插槽名 | 参数 | 说明 |
119
+ | ------- | ----------------------- | ---------- |
120
+ | title | `{ collapsed: boolean }` | 标题栏内容 |
121
+ | default | — | 活动正文 |
122
+
123
+ ### Expose
124
+
125
+ - 无。
126
+
127
+ ## 使用建议
128
+
129
+ - 适合作为活动消息内部布局外壳,不建议替代通用卡片、面板或页面 Section。
130
+ - 标题栏点击区域会整体触发折叠,标题插槽内如有按钮或链接,需要自行处理事件冒泡。
131
+ - `default` 内容使用 `v-show` 控制可见性,折叠时不会卸载内部组件。
132
+
133
+ ## 关联组件
134
+
135
+ - [ActivityMessage](../message/activity-message.md) — 活动消息分发入口。
136
+ - [KnowledgeRagContent](../agent/knowledge-rag-content.md) — 知识召回活动。
137
+ - [ReferenceDocContent](../agent/reference-doc-content.md) — 引用文档活动。
138
+ - [FlowAgentContent](../agent/flow-agent-content.md) — FlowAgent 执行活动。
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- ActivityMessage 展示活动类消息:知识检索(knowledge_rag)、引用文档列表、FlowAgent 执行(activityType 区分),标题可折叠。 content 结构随模式变化。由 MessageRender 在 activity 角色下渲染,用于 RAG/引用/流程执行过程可视化。
4
+ activityType 分发 FlowAgent、知识召回、引用文档等活动内容。 源码位置:src/components/chat-message/activity-message/activity-message.vue。
5
5
 
6
6
  ### 关联组件
7
7
  - **message-render** — 由 MessageRender 在 role 为 activity 时创建
@@ -11,12 +11,17 @@ ActivityMessage 展示活动类消息:知识检索(knowledge_rag)、引用
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # ActivityMessage 活动消息
14
+ ## 源码事实
14
15
 
15
- > **层级**:分子组件 · **功能域**:消息展示
16
+ - **源码位置**:`src/components/chat-message/activity-message/activity-message.vue`
17
+ - **能力域**:消息系统
18
+ - **能力说明**:按 activityType 分发 FlowAgent、知识召回、引用文档等活动内容。
19
+
20
+ > **能力域**:消息系统
16
21
 
17
22
  活动消息组件,用于展示 AI 的知识检索(Knowledge RAG)过程、参考文档引用列表和 FlowAgent 流程执行情况。通过 `activityType` 切换三种工作模式,点击标题栏可折叠/展开内容区域。
18
23
 
19
- 组件会将父级传入消息上的 **`uid`** 以 **`message-uid`** 形式透传给各活动子组件(`FlowAgentContent` / `KnowledgeRagContent` / `ReferenceDocContent`),用于侧栏自定义 Tab、`addCustomTab` 的 `data.messageUid` 与主对话区「在对话中定位」联动(详见 [ChatContainer](./chat-container.md))。
24
+ 组件会将父级传入消息上的 **`uid`** 以 **`message-uid`** 形式透传给各活动子组件(`FlowAgentContent` / `KnowledgeRagContent` / `ReferenceDocContent`),用于侧栏自定义 Tab、`addCustomTab` 的 `data.messageUid` 与主对话区「在对话中定位」联动(详见 [ChatContainer](/components/setup/chat-container))。
20
25
 
21
26
  ## 三种工作模式
22
27
 
@@ -156,14 +161,11 @@ ActivityMessage 展示活动类消息:知识检索(knowledge_rag)、引用
156
161
  ### 核心交互
157
162
 
158
163
  - **标题栏**:显示「执行情况」+ 所有任务聚合后的各状态计数(执行中 / 成功 / 失败 / 挂起),颜色区分
159
- - **任务组**:逐个展示任务行,带状态图标、总耗时;点击箭头图标可折叠/展开节点列表
160
- - **有效证据**:`task.has_confidence === true` 时,任务行右侧展示「有效证据」按钮,点击后在侧栏打开置信度/证据详情 Tab(`props.has_confidence: true`)
161
- - **默认激活**:当 `MessageContainer` 已注入滚动上下文(`useContainerScrollProvider`,供 `FlowAgentContent` 内 `useContainerScrollConsumer` 读取)时,组件挂载后若存在 `task.is_active === true` 且 `task.has_confidence === true` 的任务,会自动在侧栏打开该任务的「有效证据」Tab;无滚动 Provider(例如独立演示)时不做自动打开。用户手动切换 Tab 后不再沿用 `is_active` 默认高亮
162
- - **选中态**:当前侧栏 Tab 与任务行 / 节点行联动高亮(`is-selected`);任务 Tab 与「有效证据」Tab 均视为该任务的选中态
164
+ - **任务组**:逐个展示任务行,带状态图标和总耗时
163
165
  - **节点列表**:每个节点显示状态圆点、名称和耗时;hover 时出现「详情」按钮
164
- - **节点详情**:点击「详情」会通过 `useCustomTabConsumer` 在 `ChatContainer` 侧边栏新增自定义 Tab,展示节点配置(基础信息、输入参数、输出参数)
166
+ - **节点详情**:点击「详情」按钮会通过 `useCustomTabConsumer` 在 `ChatContainer` 侧边栏新增自定义 Tab,展示节点配置(基础信息、输入参数、输出参数)
165
167
 
166
- > `FlowAgentContent` 会读取 `ChatContainer` 注入的 `renderMode`。当 `renderMode === RenderMode.Share` 时,任务行不展示总耗时与「有效证据」,节点列表不展示耗时与「详情」按钮,避免分享预览中出现可交互入口。独立使用 `ActivityMessage` 且没有上层 Provider 时,默认按 `Chat` 模式渲染。
168
+ > `FlowAgentContent` 会读取 `ChatContainer` 注入的 `renderMode`。当 `renderMode === RenderMode.Share` 时,节点列表仅展示状态和名称,不展示节点耗时与「详情」按钮,避免分享预览中出现可交互的节点详情入口。独立使用 `ActivityMessage` 且没有上层 Provider 时,默认按 `Chat` 模式渲染。
167
169
 
168
170
  ### 内部渲染结构
169
171
 
@@ -175,16 +177,16 @@ FlowAgentContent(activityType = 'flow_agent')
175
177
  │ └── 执行情况:执行中 N / 成功 N / 失败 N / 挂起 N
176
178
  └── #default
177
179
  └── TaskGroup × N
178
- ├── TaskHeader(is-selected / has-confidence;箭头点击折叠)
180
+ ├── TaskHeader(可折叠/展开)
179
181
  │ ├── 状态图标(running=Loading / success / failed / suspended)
180
182
  │ ├── task_name(HighlightKeyword 支持搜索高亮)
181
- │ └── trailing:总耗时 + 「有效证据」(has_confidence 时)
183
+ │ └── 总耗时
182
184
  └── NodeList
183
- └── NodeItem × N(is-selected 与侧栏 Tab 联动)
185
+ └── NodeItem × N
184
186
  ├── 状态圆点(颜色对应状态)
185
187
  ├── node.name(HighlightKeyword 支持搜索高亮)
186
188
  ├── node.elapsed_time
187
- └── 详情按钮(hover 显示)→ 打开节点详情 Tab
189
+ └── 详情按钮(hover 显示)→ 打开自定义 Tab
188
190
  ```
189
191
 
190
192
  ### 用法示例
@@ -297,19 +299,9 @@ const messages = [
297
299
  | `suspended` | SUSPENDED | #F59500 |
298
300
  | `pending` | PENDING | #DCDEE5 |
299
301
 
300
- ### 侧栏 Tab 命名规则
301
-
302
- | 场景 | `tab.name` 格式 |
303
- | ---------- | ---------------------------------------- |
304
- | 任务详情 | `{task_id}` |
305
- | 有效证据 | `{task_id}`(与任务 Tab 同名,label 为「有效证据」) |
306
- | 节点详情 | `{task_id}\|{node.id}\|{node.name}` |
307
-
308
- `CustomBkFlowTabData` 支持 `has_confidence?: boolean`,用于侧栏详情组件区分证据视图与节点视图。应用层可通过 `ChatContainer` 的 `getSideRenderComponent` 覆盖渲染组件。
309
-
310
302
  ### 节点详情 Tab
311
303
 
312
- 点击节点的「详情」按钮,内部调用 `useCustomTabConsumer().addCustomTab()` 在 `ChatContainer` 侧边栏新开一个 Tab,渲染 `BkFlowNodeDetail`(或 `getSideRenderComponent` 返回的自定义组件),该组件提供:
304
+ 点击节点的「详情」按钮,内部调用 `useCustomTabConsumer().addCustomTab()` 在 `ChatContainer` 侧边栏新开一个 Tab,渲染 `FlowAgentNodeDetail` 组件,该组件提供:
313
305
 
314
306
  - **节点配置** Tab:基础信息表单(流程模板、节点名称、步骤名称、失败处理、超时控制)+ 输入参数表 + 输出参数表
315
307
  - **节点输出** Tab:结构化输出参数表
@@ -323,8 +315,6 @@ import { MessageContentType, type BkFlowMessageContent, type BkFlowNode, type Bk
323
315
  type BkFlowMessageContent = BkFlowTask[];
324
316
 
325
317
  type BkFlowTask = {
326
- has_confidence?: boolean; // 是否展示「有效证据」入口;与 is_active 同时为 true 且在消息容器滚动上下文中时,挂载后自动打开「有效证据」侧栏 Tab
327
- is_active?: boolean; // 是否默认激活;需配合 has_confidence 且存在滚动 Provider 才会自动打开侧栏「有效证据」Tab
328
318
  nodes: Record<string, BkFlowNode>;
329
319
  statistics: { state_counts: Record<string, number>; total: number };
330
320
  task_id: number;
@@ -448,5 +438,5 @@ enum MessageContentType {
448
438
 
449
439
  ## 关联组件
450
440
 
451
- - [MessageRender](./message-render.md) — activity 角色由其实例化
452
- - [AssistantMessage](./assistant-message.md) — 常与助手主回复配合出现
441
+ - [MessageRender](/components/message/message-render) — activity 角色由其实例化
442
+ - [AssistantMessage](/components/message/assistant-message) — 常与助手主回复配合出现
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- AiImage 负责缩略图展示,并处理加载中、失败重试与懒加载;无 ImagePreviewGroup 上下文时可内嵌 ImagePreview 做全屏预览。 在 Group 内通过 inject 注册子图,点击时参与多图集合预览;支持自定义下载与 preview 事件。 与 ImagePreview、ImagePreviewGroup 共同构成对话内图片展示与预览链路。
4
+ 图片展示组件,组合加载、错误、预览和 extra 插槽。 源码位置:src/components/image-preview/image.vue。
5
5
 
6
6
  ### 关联组件
7
7
  - **image-preview** — 独立模式下内嵌全屏预览,单图预览入口
@@ -11,8 +11,13 @@ AiImage 负责缩略图展示,并处理加载中、失败重试与懒加载;
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # AiImage 图片展示
14
+ ## 源码事实
14
15
 
15
- > **层级**:原子组件 · **功能域**:文件与图片
16
+ - **源码位置**:`src/components/image-preview/image.vue`
17
+ - **能力域**:媒体文件
18
+ - **能力说明**:图片展示组件,组合加载、错误、预览和 extra 插槽。
19
+
20
+ > **能力域**:媒体文件
16
21
 
17
22
  图片展示组件,支持加载状态、加载失败重试、懒加载、点击预览等功能。可独立使用(单图预览),也可配合 `ImagePreviewGroup` 实现多图预览。
18
23
 
@@ -223,5 +228,5 @@ interface ImagePreviewConfig {
223
228
 
224
229
  ## 关联组件
225
230
 
226
- - [ImagePreview](../molecular/image-preview.md) — 独立模式下的全屏预览
227
- - [ImagePreviewGroup](../molecular/image-preview-group.md) — 多图注册与预览上下文
231
+ - [ImagePreview](/components/medias/image-preview) — 独立模式下的全屏预览
232
+ - [ImagePreviewGroup](/components/medias/image-preview-group) — 多图注册与预览上下文
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- AiLoading 使用纯 CSS/SVG 动画(旋转环与脉冲星形)展示加载中,不依赖 bkui Loading 多实例时需用 cloneVNode 等为渐变 id 加前缀避免冲突;支持 stopLoading 暂停动画。
4
+ 小尺寸 AI 加载动效。 源码位置:src/components/ai-loading/ai-loading.vue
5
5
 
6
6
  ### 关联组件
7
7
  - **loading-message** — 列表末尾加载占位
@@ -12,10 +12,15 @@ AiLoading 使用纯 CSS/SVG 动画(旋转环与脉冲星形)展示加载中
12
12
  <!-- FULL DOC -->
13
13
 
14
14
  # AiLoading AI 加载动画
15
+ ## 源码事实
15
16
 
16
- > **层级**:原子组件 · **功能域**:辅助组件
17
+ - **源码位置**:`src/components/ai-loading/ai-loading.vue`
18
+ - **能力域**:辅助能力
19
+ - **能力说明**:小尺寸 AI 加载动效。
17
20
 
18
- AI 加载动画原子组件。由两层 SVG 叠加构成:外层旋转光环(带渐变弧线)+ 内层脉冲星形图标,两者共用同一套蓝→紫→粉渐变色。
21
+ > **能力域**:辅助能力
22
+
23
+ AI 加载动画基础组件。由两层 SVG 叠加构成:外层旋转光环(带渐变弧线)+ 内层脉冲星形图标,两者共用同一套蓝→紫→粉渐变色。
19
24
 
20
25
  ## 组件结构
21
26
 
@@ -124,6 +129,6 @@ ai-loading-star-{instanceId}
124
129
 
125
130
  ## 关联组件
126
131
 
127
- - [LoadingMessage](../molecular/loading-message.md) — 对话加载消息
128
- - [ReasoningMessage](../molecular/reasoning-message.md) — 推理加载态
129
- - [ActivityMessage](../molecular/activity-message.md) — 活动加载态
132
+ - [LoadingMessage](/components/message/loading-message) — 对话加载消息
133
+ - [ReasoningMessage](/components/message/reasoning-message) — 推理加载态
134
+ - [ActivityMessage](/components/message/activity-message) — 活动加载态
@@ -0,0 +1,42 @@
1
+ <!-- AI SUMMARY -->
2
+ ## 快速了解
3
+
4
+ / Prompt 选择列表,供 AiSlashInput 插入模板文本。 源码位置:src/components/chat-input/ai-slash-input/ai-prompt-list/ai-prompt-list.vue。
5
+
6
+ ---
7
+ <!-- FULL DOC -->
8
+
9
+ # AiPromptList Prompt 列表
10
+
11
+ > **能力域**:输入交互
12
+
13
+ ## 源码事实
14
+
15
+ - **源码位置**:`src/components/chat-input/ai-slash-input/ai-prompt-list/ai-prompt-list.vue`
16
+ - **能力说明**:/ Prompt 选择列表,供 AiSlashInput 插入模板文本。
17
+
18
+ ## API 摘要
19
+
20
+ ### Props
21
+
22
+ - `{ onSelect: (prompt: string) =`
23
+
24
+ ### Emits
25
+
26
+ - 无。
27
+
28
+ ### Slots
29
+
30
+ - 无。
31
+
32
+ ### Expose
33
+
34
+ - 无。
35
+
36
+ ## 组件依赖
37
+
38
+ - 无组件依赖或仅依赖基础库。
39
+
40
+ ## 使用建议
41
+
42
+ - 优先通过上层组合组件使用;直接使用前请确认 props 数据结构来自对应类型定义。
@@ -1,18 +1,23 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- AiSelection 在 document 级监听文本选区,在选区附近弹出快捷操作菜单;每页建议只挂载一个实例。 通过 shortcuts、maxShortcutCount、offset 等配置菜单内容与布局,支持完全自定义 default 插槽与 Shadow DOM 场景。 常与 ChatInput 或业务侧联动,将选中文本作为追问上下文。
4
+ 监听选中文本并展示快捷操作浮窗。 源码位置:src/components/ai-selection/ai-selection.vue。
5
5
 
6
6
  ### 关联组件
7
- - **shortcut-btn** — 弹窗内快捷指令按钮/菜单项由该原子组件渲染
7
+ - **shortcut-btn** — 弹窗内快捷指令按钮/菜单项由该基础组件渲染
8
8
  - **chat-input** — 划词结果常回填或触发与输入框联动的快捷指令
9
9
 
10
10
  ---
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # AiSelection AI 划词选择弹窗
14
+ ## 源码事实
14
15
 
15
- > **层级**:分子组件 · **功能域**:输入交互
16
+ - **源码位置**:`src/components/ai-selection/ai-selection.vue`
17
+ - **能力域**:输入交互
18
+ - **能力说明**:监听选中文本并展示快捷操作浮窗。
19
+
20
+ > **能力域**:输入交互
16
21
 
17
22
  AI 划词选择组件,监听用户在页面中的文本选区,在选区附近弹出快捷操作菜单。支持自定义快捷指令列表、数量限制、垂直偏移以及完全自定义插槽内容。
18
23
 
@@ -432,5 +437,5 @@ interface Shortcut {
432
437
 
433
438
  ## 关联组件
434
439
 
435
- - [ShortcutBtn](../atomic/shortcut-btn.md) — 弹窗内快捷指令按钮单元
436
- - [ChatInput](./chat-input.md) — 选区文本常回填到聊天输入框
440
+ - [ShortcutBtn](/components/input/shortcut-btn) — 弹窗内快捷指令按钮单元
441
+ - [ChatInput](/components/input/chat-input) — 选区文本常回填到聊天输入框
@@ -0,0 +1,43 @@
1
+ <!-- AI SUMMARY -->
2
+ ## 快速了解
3
+
4
+ 旧版富文本编辑器实现,封装 command selection 与提示菜单。 源码位置:src/components/chat-input/ai-slash-editor/ai-slash-editor.vue。
5
+
6
+ ---
7
+ <!-- FULL DOC -->
8
+
9
+ # AiSlashEditor 富文本编辑器
10
+
11
+ > **能力域**:输入交互
12
+
13
+ ## 源码事实
14
+
15
+ - **源码位置**:`src/components/chat-input/ai-slash-editor/ai-slash-editor.vue`
16
+ - **能力说明**:旧版富文本编辑器实现,封装 command selection 与提示菜单。
17
+
18
+ ## API 摘要
19
+
20
+ ### Props
21
+
22
+ - `{ disabled?: boolean; modelValue?: string; placeholder?: string; prompts?: string[]; }`
23
+
24
+ ### Emits
25
+
26
+ - `{ (e: 'update:modelValue', value: string): void; (e: 'focus'): void; (e: 'keydown', event: IKeyboardEvent): void; (e: 'layoutChange', layoutInfo: monacoEditor.EditorLayoutInfo): void; }`
27
+
28
+ ### Slots
29
+
30
+ - 无。
31
+
32
+ ### Expose
33
+
34
+ - `{ get editor(`
35
+
36
+ ## 组件依赖
37
+
38
+ - `AiPromptList`
39
+ - `AiSlashMenu`
40
+
41
+ ## 使用建议
42
+
43
+ - 优先通过上层组合组件使用;直接使用前请确认 props 数据结构来自对应类型定义。
@@ -0,0 +1,43 @@
1
+ <!-- AI SUMMARY -->
2
+ ## 快速了解
3
+
4
+ ChatInput 内部富文本输入,支持 / Prompt 与 @ 资源标签。 源码位置:src/components/chat-input/ai-slash-input/ai-slash-input.vue。
5
+
6
+ ---
7
+ <!-- FULL DOC -->
8
+
9
+ # AiSlashInput 富文本命令输入
10
+
11
+ > **能力域**:输入交互
12
+
13
+ ## 源码事实
14
+
15
+ - **源码位置**:`src/components/chat-input/ai-slash-input/ai-slash-input.vue`
16
+ - **能力说明**:ChatInput 内部富文本输入,支持 / Prompt 与 @ 资源标签。
17
+
18
+ ## API 摘要
19
+
20
+ ### Props
21
+
22
+ - `{ modelValue: string | TagSchema; placeholder?: string; prompts?: string[]; resources?: IAiSlashMenuItem[]; }`
23
+
24
+ ### Emits
25
+
26
+ - `{ (e: 'update:modelValue', value: TagSchema, selectedResourceList: IAiSlashMenuItem[]): void; (e: 'keydown', event: KeyboardEvent & KeyboardPayload): void; (e: 'upload', files: File[]): void; }`
27
+
28
+ ### Slots
29
+
30
+ - 无。
31
+
32
+ ### Expose
33
+
34
+ - `{ cleanup: (`
35
+
36
+ ## 组件依赖
37
+
38
+ - `AiPromptList`
39
+ - `AiSlashMenu`
40
+
41
+ ## 使用建议
42
+
43
+ - 优先通过上层组合组件使用;直接使用前请确认 props 数据结构来自对应类型定义。
@@ -0,0 +1,42 @@
1
+ <!-- AI SUMMARY -->
2
+ ## 快速了解
3
+
4
+ @ 资源选择菜单,展示资源项供 AiSlashInput 插入标签。 源码位置:src/components/chat-input/ai-slash-input/ai-slash-menu/ai-slash-menu.vue。
5
+
6
+ ---
7
+ <!-- FULL DOC -->
8
+
9
+ # AiSlashMenu 资源菜单
10
+
11
+ > **能力域**:输入交互
12
+
13
+ ## 源码事实
14
+
15
+ - **源码位置**:`src/components/chat-input/ai-slash-input/ai-slash-menu/ai-slash-menu.vue`
16
+ - **能力说明**:@ 资源选择菜单,展示资源项供 AiSlashInput 插入标签。
17
+
18
+ ## API 摘要
19
+
20
+ ### Props
21
+
22
+ - `{ onSelect: (item: IAiSlashMenuItem) =`
23
+
24
+ ### Emits
25
+
26
+ - 无。
27
+
28
+ ### Slots
29
+
30
+ - 无。
31
+
32
+ ### Expose
33
+
34
+ - 无。
35
+
36
+ ## 组件依赖
37
+
38
+ - 无组件依赖或仅依赖基础库。
39
+
40
+ ## 使用建议
41
+
42
+ - 优先通过上层组合组件使用;直接使用前请确认 props 数据结构来自对应类型定义。
@@ -1,7 +1,7 @@
1
1
  <!-- AI SUMMARY -->
2
2
  ## 快速了解
3
3
 
4
- AnimationText 将文本拆成 chunk 并以淡入 keyframes 逐段显示,适合短文案一次性展示。 props.text 仅在挂载时参与动画;持续流式场景应直接使用 useAnimationText 或自行 watch Ref 与 Markdown 流式渐显等场景可组合使用。
4
+ 按文本增量播放流式动画。 源码位置:src/components/animation-text/animation-text.vue
5
5
 
6
6
  ### 关联组件
7
7
  - **use-animation-text** — 提供 chunk 拆分与 animationStyle 的 composable
@@ -11,10 +11,15 @@ AnimationText 将文本拆成 chunk 并以淡入 keyframes 逐段显示,适合
11
11
  <!-- FULL DOC -->
12
12
 
13
13
  # AnimationText 动画文本
14
+ ## 源码事实
14
15
 
15
- > **层级**:原子组件 · **功能域**:内容渲染
16
+ - **源码位置**:`src/components/animation-text/animation-text.vue`
17
+ - **能力域**:内容渲染
18
+ - **能力说明**:按文本增量播放流式动画。
16
19
 
17
- 动画文本原子组件,将文本以**淡入(fade-in)**方式渐显。内部由 `useAnimationText` composable 驱动,核心能力是将增量文本拆分为独立 chunk,每个 chunk 单独触发一次淡入动画,适用于流式文本的逐段渐显效果。
20
+ > **能力域**:内容渲染
21
+
22
+ 动画文本基础组件,将文本以**淡入(fade-in)**方式渐显。内部由 `useAnimationText` composable 驱动,核心能力是将增量文本拆分为独立 chunk,每个 chunk 单独触发一次淡入动画,适用于流式文本的逐段渐显效果。
18
23
 
19
24
  ## 组件结构
20
25
 
@@ -196,4 +201,4 @@ interface AnimationConfig {
196
201
  ## 关联组件
197
202
 
198
203
  - [useAnimationText](../../composables/use-animation-text.md) — chunk 与动画样式逻辑
199
- - [MarkdownContent](./markdown-content.md) — 流式正文渲染时可配合渐显
204
+ - [MarkdownContent](/components/rendering/markdown-content) — 流式正文渲染时可配合渐显