@blueking/chat-x 0.0.51-beta.5 → 0.0.52-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -8
- package/dist/ag-ui/types/contents.d.ts +2 -0
- package/dist/ag-ui/types/messages.d.ts +6 -1
- package/dist/common/constants.d.ts +2 -0
- package/dist/components/ai-buttons/add-menu-btn/add-menu-btn.vue.d.ts +24 -0
- package/dist/components/chat-content/collapsible-content/collapsible-content.vue.d.ts +28 -0
- package/dist/components/chat-content/file-content/upload-file-item.vue.d.ts +5 -2
- package/dist/components/chat-content/file-content/upload-image-item.vue.d.ts +1 -0
- package/dist/components/chat-content/flow-agent-content/use-flow-node-actions.d.ts +1 -1
- package/dist/components/chat-input/ai-slash-input/ai-slash-input.vue.d.ts +21 -10
- package/dist/components/chat-input/ai-slash-input/command.d.ts +6 -3
- package/dist/components/chat-input/ai-slash-input/constants.d.ts +2 -0
- package/dist/components/chat-input/ai-slash-input/use-menu-trigger.d.ts +17 -0
- package/dist/components/chat-input/build-default-placeholder.d.ts +9 -3
- package/dist/components/chat-input/chat-input.vue.d.ts +30 -18
- package/dist/components/chat-input/input-menu/constants.d.ts +60 -0
- package/dist/components/chat-input/input-menu/index.d.ts +4 -0
- package/dist/components/chat-input/input-menu/input-menu-option.vue.d.ts +14 -0
- package/dist/components/chat-input/input-menu/input-menu-panel.vue.d.ts +17 -0
- package/dist/components/chat-input/input-menu/use-input-menu.d.ts +22 -0
- package/dist/components/chat-input/model-selector/types.d.ts +3 -2
- package/dist/components/chat-message/message-container/message-container.vue.d.ts +1 -1
- package/dist/components/chat-message/user-message/user-message.vue.d.ts +1 -1
- package/dist/components/mention/create-mention-tippy.d.ts +27 -0
- package/dist/components/mention/index.d.ts +4 -0
- package/dist/components/{chat-input/ai-slash-input/ai-prompt-list/ai-prompt-list.vue.d.ts → mention/mention-popover.vue.d.ts} +3 -2
- package/dist/components/{chat-input/ai-slash-input/ai-skill-list/ai-skill-list.vue.d.ts → mention/mention-tag.vue.d.ts} +7 -3
- package/dist/components/{chat-input/ai-slash-input/ai-slash-menu/ai-slash-menu.vue.d.ts → mention/mention-text.vue.d.ts} +3 -3
- package/dist/components/resource-icon/index.d.ts +1 -0
- package/dist/components/resource-icon/resource-icon.vue.d.ts +11 -0
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/use-artifact-preview.d.ts +5 -2
- package/dist/composables/use-common.d.ts +0 -9
- package/dist/composables/use-global-config.d.ts +4 -0
- package/dist/composables/use-input-mention.d.ts +13 -0
- package/dist/composables/use-message-group.d.ts +1011 -72
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/input.d.ts +21 -0
- package/dist/icons/menu-item.d.ts +22 -0
- package/dist/index.css +1 -1
- package/dist/index.js +4953 -4429
- package/dist/index.js.map +1 -1
- package/dist/lang/lang.d.ts +13 -3
- package/dist/mcp/generated/docs/activity-message.md +3 -3
- package/dist/mcp/generated/docs/add-menu-btn.md +91 -0
- package/dist/mcp/generated/docs/ai-slash-input.md +72 -26
- package/dist/mcp/generated/docs/assistant-message.md +7 -1
- package/dist/mcp/generated/docs/chat-container.md +45 -6
- package/dist/mcp/generated/docs/chat-input.md +327 -483
- package/dist/mcp/generated/docs/collapsible-content.md +78 -0
- package/dist/mcp/generated/docs/constants.md +36 -3
- package/dist/mcp/generated/docs/execution-summary.md +1 -23
- package/dist/mcp/generated/docs/file-artifact-panel.md +24 -5
- package/dist/mcp/generated/docs/file-content.md +4 -0
- package/dist/mcp/generated/docs/file-upload-btn.md +15 -12
- package/dist/mcp/generated/docs/flow-agent-content.md +10 -12
- package/dist/mcp/generated/docs/input-menu-panel.md +166 -0
- package/dist/mcp/generated/docs/mention-tag.md +83 -0
- package/dist/mcp/generated/docs/mention-text.md +86 -0
- package/dist/mcp/generated/docs/message-container.md +1 -1
- package/dist/mcp/generated/docs/message-render.md +1 -1
- package/dist/mcp/generated/docs/message-tools.md +15 -4
- package/dist/mcp/generated/docs/messages.md +3 -0
- package/dist/mcp/generated/docs/model-selector.md +4 -2
- package/dist/mcp/generated/docs/overflow-tips.md +3 -3
- package/dist/mcp/generated/docs/resource-icon.md +102 -0
- package/dist/mcp/generated/docs/text-content.md +7 -3
- package/dist/mcp/generated/docs/theme.md +27 -35
- package/dist/mcp/generated/docs/use-artifact-preview.md +7 -3
- package/dist/mcp/generated/docs/use-command-selection.md +1 -1
- package/dist/mcp/generated/docs/use-container-scroll.md +2 -1
- package/dist/mcp/generated/docs/use-flow-node-actions.md +8 -15
- package/dist/mcp/generated/docs/use-global-config.md +11 -4
- package/dist/mcp/generated/docs/use-input-mention.md +119 -0
- package/dist/mcp/generated/docs/use-menu-keydown.md +15 -16
- package/dist/mcp/generated/docs/use-message-group.md +3 -6
- package/dist/mcp/generated/docs/user-message.md +39 -17
- package/dist/mcp/generated/index.json +233 -81
- package/dist/types/editor.d.ts +0 -29
- package/dist/types/index.d.ts +1 -0
- package/dist/types/input-menu.d.ts +46 -0
- package/dist/utils/artifact-tags.d.ts +36 -0
- package/dist/utils/collect-message-artifacts.d.ts +14 -0
- package/dist/utils/file.d.ts +3 -3
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/upload-file.d.ts +6 -1
- package/package.json +3 -2
- package/skills/blueking-chat-x/SKILL.md +143 -0
- package/skills/blueking-chat-x/references/_index.md +153 -0
- package/skills/blueking-chat-x/references/components/activity-layout.md +134 -0
- package/skills/blueking-chat-x/references/components/activity-message.md +486 -0
- package/skills/blueking-chat-x/references/components/add-menu-btn.md +88 -0
- package/skills/blueking-chat-x/references/components/ai-image.md +230 -0
- package/skills/blueking-chat-x/references/components/ai-loading.md +131 -0
- package/skills/blueking-chat-x/references/components/ai-selection.md +439 -0
- package/skills/blueking-chat-x/references/components/ai-slash-input.md +102 -0
- package/skills/blueking-chat-x/references/components/animation-text.md +202 -0
- package/skills/blueking-chat-x/references/components/assistant-message.md +504 -0
- package/skills/blueking-chat-x/references/components/chat-container.md +912 -0
- package/skills/blueking-chat-x/references/components/chat-input.md +614 -0
- package/skills/blueking-chat-x/references/components/cite-content.md +142 -0
- package/skills/blueking-chat-x/references/components/code-content.md +211 -0
- package/skills/blueking-chat-x/references/components/collapsible-content.md +76 -0
- package/skills/blueking-chat-x/references/components/common-error-content.md +73 -0
- package/skills/blueking-chat-x/references/components/content-render.md +233 -0
- package/skills/blueking-chat-x/references/components/delete-tool.md +191 -0
- package/skills/blueking-chat-x/references/components/desc-panel.md +162 -0
- package/skills/blueking-chat-x/references/components/detail-section.md +91 -0
- package/skills/blueking-chat-x/references/components/execution-summary.md +150 -0
- package/skills/blueking-chat-x/references/components/file-artifact-panel.md +307 -0
- package/skills/blueking-chat-x/references/components/file-content.md +340 -0
- package/skills/blueking-chat-x/references/components/file-icon.md +109 -0
- package/skills/blueking-chat-x/references/components/file-upload-btn.md +162 -0
- package/skills/blueking-chat-x/references/components/flow-agent-content.md +266 -0
- package/skills/blueking-chat-x/references/components/flow-agent-node-detail.md +236 -0
- package/skills/blueking-chat-x/references/components/highlight-keyword.md +146 -0
- package/skills/blueking-chat-x/references/components/image-content.md +182 -0
- package/skills/blueking-chat-x/references/components/image-preview-group.md +184 -0
- package/skills/blueking-chat-x/references/components/image-preview.md +226 -0
- package/skills/blueking-chat-x/references/components/info-message.md +144 -0
- package/skills/blueking-chat-x/references/components/input-attachment.md +49 -0
- package/skills/blueking-chat-x/references/components/input-info-alert.md +42 -0
- package/skills/blueking-chat-x/references/components/input-menu-panel.md +162 -0
- package/skills/blueking-chat-x/references/components/interrupt-message.md +212 -0
- package/skills/blueking-chat-x/references/components/key-value-content.md +128 -0
- package/skills/blueking-chat-x/references/components/knowledge-rag-content.md +122 -0
- package/skills/blueking-chat-x/references/components/latex-content.md +200 -0
- package/skills/blueking-chat-x/references/components/loading-message.md +192 -0
- package/skills/blueking-chat-x/references/components/markdown-content.md +232 -0
- package/skills/blueking-chat-x/references/components/mention-tag.md +79 -0
- package/skills/blueking-chat-x/references/components/mention-text.md +83 -0
- package/skills/blueking-chat-x/references/components/mermaid-content.md +189 -0
- package/skills/blueking-chat-x/references/components/message-container.md +645 -0
- package/skills/blueking-chat-x/references/components/message-loading.md +118 -0
- package/skills/blueking-chat-x/references/components/message-render.md +327 -0
- package/skills/blueking-chat-x/references/components/message-time.md +177 -0
- package/skills/blueking-chat-x/references/components/message-tools.md +427 -0
- package/skills/blueking-chat-x/references/components/model-selector.md +157 -0
- package/skills/blueking-chat-x/references/components/preview-toolbar.md +42 -0
- package/skills/blueking-chat-x/references/components/questions-container.md +85 -0
- package/skills/blueking-chat-x/references/components/reasoning-message.md +232 -0
- package/skills/blueking-chat-x/references/components/reference-content.md +135 -0
- package/skills/blueking-chat-x/references/components/reference-doc-content.md +109 -0
- package/skills/blueking-chat-x/references/components/resource-icon.md +98 -0
- package/skills/blueking-chat-x/references/components/scroll-btn.md +159 -0
- package/skills/blueking-chat-x/references/components/selection-footer.md +78 -0
- package/skills/blueking-chat-x/references/components/selection-question.md +88 -0
- package/skills/blueking-chat-x/references/components/shortcut-btn.md +204 -0
- package/skills/blueking-chat-x/references/components/shortcut-btns.md +266 -0
- package/skills/blueking-chat-x/references/components/shortcut-render.md +424 -0
- package/skills/blueking-chat-x/references/components/simple-table.md +101 -0
- package/skills/blueking-chat-x/references/components/text-content.md +80 -0
- package/skills/blueking-chat-x/references/components/tool-approval-card.md +183 -0
- package/skills/blueking-chat-x/references/components/tool-btn.md +317 -0
- package/skills/blueking-chat-x/references/components/tool-message.md +235 -0
- package/skills/blueking-chat-x/references/components/toolcall-render.md +348 -0
- package/skills/blueking-chat-x/references/components/user-feedback.md +233 -0
- package/skills/blueking-chat-x/references/components/user-message.md +444 -0
- package/skills/blueking-chat-x/references/components/user-question-answered-card.md +104 -0
- package/skills/blueking-chat-x/references/components/user-question-card.md +231 -0
- package/skills/blueking-chat-x/references/components/user-question-choice.md +105 -0
- package/skills/blueking-chat-x/references/components/user-question-option.md +42 -0
- package/skills/blueking-chat-x/references/components/vnode-renderer.md +122 -0
- package/skills/blueking-chat-x/references/composables/use-animation-text.md +196 -0
- package/skills/blueking-chat-x/references/composables/use-artifact-preview.md +235 -0
- package/skills/blueking-chat-x/references/composables/use-clipboard.md +203 -0
- package/skills/blueking-chat-x/references/composables/use-command-selection.md +150 -0
- package/skills/blueking-chat-x/references/composables/use-container-scroll.md +57 -0
- package/skills/blueking-chat-x/references/composables/use-custom-tab.md +158 -0
- package/skills/blueking-chat-x/references/composables/use-flow-node-actions.md +164 -0
- package/skills/blueking-chat-x/references/composables/use-full-screen.md +112 -0
- package/skills/blueking-chat-x/references/composables/use-global-config.md +155 -0
- package/skills/blueking-chat-x/references/composables/use-input-mention.md +115 -0
- package/skills/blueking-chat-x/references/composables/use-menu-keydown.md +161 -0
- package/skills/blueking-chat-x/references/composables/use-message-group.md +244 -0
- package/skills/blueking-chat-x/references/composables/use-observer-visible-list.md +188 -0
- package/skills/blueking-chat-x/references/composables/use-parent-scrolling.md +46 -0
- package/skills/blueking-chat-x/references/directives/index.md +61 -0
- package/skills/blueking-chat-x/references/directives/overflow-tips.md +205 -0
- package/skills/blueking-chat-x/references/icons/index.md +185 -0
- package/skills/blueking-chat-x/references/plugins/index.md +56 -0
- package/skills/blueking-chat-x/references/plugins/markdown-container.md +55 -0
- package/skills/blueking-chat-x/references/plugins/markdown-latex.md +205 -0
- package/skills/blueking-chat-x/references/plugins/markdown-mermaid.md +247 -0
- package/skills/blueking-chat-x/references/theme/theme.md +423 -0
- package/skills/blueking-chat-x/references/types/constants.md +340 -0
- package/skills/blueking-chat-x/references/types/index.md +120 -0
- package/skills/blueking-chat-x/references/types/interrupt.md +379 -0
- package/skills/blueking-chat-x/references/types/messages.md +556 -0
- package/skills/blueking-chat-x/references/types/schema.md +91 -0
- package/skills/blueking-chat-x/references/utils/index.md +196 -0
- package/skills/blueking-chat-x/scripts/generate-references.mjs +536 -0
- package/dist/components/chat-input/ai-slash-editor/ai-slash-editor.vue.d.ts +0 -28
- package/dist/components/chat-input/ai-slash-editor/theme.d.ts +0 -24
- package/dist/mcp/generated/docs/ai-prompt-list.md +0 -45
- package/dist/mcp/generated/docs/ai-skill-list.md +0 -75
- package/dist/mcp/generated/docs/ai-slash-editor.md +0 -43
- package/dist/mcp/generated/docs/ai-slash-menu.md +0 -42
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "2.0.0",
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-11T04:44:17.013Z",
|
|
4
4
|
"domains": {
|
|
5
5
|
"setup": {
|
|
6
6
|
"label": "对话搭建",
|
|
@@ -29,12 +29,15 @@
|
|
|
29
29
|
"animation-text",
|
|
30
30
|
"cite-content",
|
|
31
31
|
"code-content",
|
|
32
|
+
"collapsible-content",
|
|
32
33
|
"common-error-content",
|
|
33
34
|
"content-render",
|
|
34
35
|
"desc-panel",
|
|
35
36
|
"key-value-content",
|
|
36
37
|
"latex-content",
|
|
37
38
|
"markdown-content",
|
|
39
|
+
"mention-tag",
|
|
40
|
+
"mention-text",
|
|
38
41
|
"mermaid-content",
|
|
39
42
|
"reference-content",
|
|
40
43
|
"text-content"
|
|
@@ -43,16 +46,14 @@
|
|
|
43
46
|
"input": {
|
|
44
47
|
"label": "输入交互",
|
|
45
48
|
"components": [
|
|
46
|
-
"
|
|
49
|
+
"add-menu-btn",
|
|
47
50
|
"ai-selection",
|
|
48
|
-
"ai-skill-list",
|
|
49
|
-
"ai-slash-editor",
|
|
50
51
|
"ai-slash-input",
|
|
51
|
-
"ai-slash-menu",
|
|
52
52
|
"chat-input",
|
|
53
53
|
"file-upload-btn",
|
|
54
54
|
"input-attachment",
|
|
55
55
|
"input-info-alert",
|
|
56
|
+
"input-menu-panel",
|
|
56
57
|
"model-selector",
|
|
57
58
|
"selection-footer",
|
|
58
59
|
"shortcut-btn",
|
|
@@ -103,6 +104,7 @@
|
|
|
103
104
|
"highlight-keyword",
|
|
104
105
|
"message-loading",
|
|
105
106
|
"questions-container",
|
|
107
|
+
"resource-icon",
|
|
106
108
|
"selection-question",
|
|
107
109
|
"vnode-renderer",
|
|
108
110
|
"ai-image",
|
|
@@ -139,7 +141,7 @@
|
|
|
139
141
|
"slug": "execution-summary",
|
|
140
142
|
"kind": "component",
|
|
141
143
|
"description": "按消息流提取执行摘要,支持关键词定位和消息渲染。",
|
|
142
|
-
"aiSummary": "按消息流提取执行摘要,支持关键词定位和消息渲染。
|
|
144
|
+
"aiSummary": "按消息流提取执行摘要,支持关键词定位和消息渲染。 源码位置:src/components/execution-summary/execution-summary.vue。",
|
|
143
145
|
"relatedComponents": [
|
|
144
146
|
{
|
|
145
147
|
"slug": "message-render",
|
|
@@ -668,6 +670,33 @@
|
|
|
668
670
|
"docFile": "docs/questions-container.md",
|
|
669
671
|
"domain": "helper"
|
|
670
672
|
},
|
|
673
|
+
{
|
|
674
|
+
"name": "ResourceIcon 资源图标",
|
|
675
|
+
"slug": "resource-icon",
|
|
676
|
+
"kind": "component",
|
|
677
|
+
"description": "按 URL / Vue 组件 / 类型兜底三级策略渲染资源图标,图片失效自动回退。",
|
|
678
|
+
"aiSummary": "ResourceIcon 统一渲染资源图标:icon 为字符串按 img 加载(加载失败回退内置图标)、 为 Vue 组件直接渲染、缺省时按 type 查内置图标表(artifact 交给 FileIcon 按文件名后缀推导, 未登记类型回退 ModuleIcon);尺寸由 --ai-icon-size 控制,默认 16px。 源码位置:src/components/resource-icon/resource-icon.vue。",
|
|
679
|
+
"relatedComponents": [
|
|
680
|
+
{
|
|
681
|
+
"slug": "input-menu-panel",
|
|
682
|
+
"relation": "菜单条目左侧图标"
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"slug": "mention-tag",
|
|
686
|
+
"relation": "输入框与消息中的资源标签图标"
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"slug": "model-selector",
|
|
690
|
+
"relation": "模型选择器的触发器与选项图标"
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"slug": "file-icon",
|
|
694
|
+
"relation": "artifact 类型委托给 FileIcon 按后缀推导"
|
|
695
|
+
}
|
|
696
|
+
],
|
|
697
|
+
"docFile": "docs/resource-icon.md",
|
|
698
|
+
"domain": "helper"
|
|
699
|
+
},
|
|
671
700
|
{
|
|
672
701
|
"name": "SelectionQuestion 选择问题占位",
|
|
673
702
|
"slug": "selection-question",
|
|
@@ -719,18 +748,26 @@
|
|
|
719
748
|
"domain": "helper"
|
|
720
749
|
},
|
|
721
750
|
{
|
|
722
|
-
"name": "
|
|
723
|
-
"slug": "
|
|
751
|
+
"name": "AddMenuBtn 添加菜单按钮",
|
|
752
|
+
"slug": "add-menu-btn",
|
|
724
753
|
"kind": "component",
|
|
725
|
-
"description": "
|
|
726
|
-
"aiSummary": "
|
|
754
|
+
"description": "输入框左下角的 + 号按钮,唤起聚合菜单,展开态高亮。",
|
|
755
|
+
"aiSummary": "AddMenuBtn 是输入框底部工具栏最左侧的 + 号:只负责展示与 toggle 事件,菜单开合由上层控制; active 为 true 时保持 hover 底色;mousedown 已 preventDefault,点击不会抢走编辑器焦点。 源码位置:src/components/ai-buttons/add-menu-btn/add-menu-btn.vue。",
|
|
727
756
|
"relatedComponents": [
|
|
728
757
|
{
|
|
729
|
-
"slug": "
|
|
730
|
-
"relation": "
|
|
758
|
+
"slug": "chat-input",
|
|
759
|
+
"relation": "输入框底部工具栏渲染该按钮并处理 toggle"
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"slug": "input-menu-panel",
|
|
763
|
+
"relation": "点击后唤起 plus 触发的聚合菜单"
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
"slug": "file-upload-btn",
|
|
767
|
+
"relation": "被本按钮取代的旧上传入口"
|
|
731
768
|
}
|
|
732
769
|
],
|
|
733
|
-
"docFile": "docs/
|
|
770
|
+
"docFile": "docs/add-menu-btn.md",
|
|
734
771
|
"domain": "input"
|
|
735
772
|
},
|
|
736
773
|
{
|
|
@@ -752,98 +789,67 @@
|
|
|
752
789
|
"docFile": "docs/ai-selection.md",
|
|
753
790
|
"domain": "input"
|
|
754
791
|
},
|
|
755
|
-
{
|
|
756
|
-
"name": "AiSkillList Skill 列表",
|
|
757
|
-
"slug": "ai-skill-list",
|
|
758
|
-
"kind": "component",
|
|
759
|
-
"description": "/ Skill 选择列表,供 AiSlashInput 插入 Skill 标签。",
|
|
760
|
-
"aiSummary": "/ Skill 选择列表,供 AiSlashInput 插入 Skill 标签。 无 icon 或 icon 加载失败时展示 skill_name 首字母 fallback。 源码位置:src/components/chat-input/ai-slash-input/ai-skill-list/ai-skill-list.vue。",
|
|
761
|
-
"relatedComponents": [
|
|
762
|
-
{
|
|
763
|
-
"slug": "ai-slash-input",
|
|
764
|
-
"relation": "输入 / 时由 AiSlashInput tippy 菜单渲染"
|
|
765
|
-
},
|
|
766
|
-
{
|
|
767
|
-
"slug": "chat-input",
|
|
768
|
-
"relation": "经 ChatInput.skills 透传数据源"
|
|
769
|
-
}
|
|
770
|
-
],
|
|
771
|
-
"docFile": "docs/ai-skill-list.md",
|
|
772
|
-
"domain": "input"
|
|
773
|
-
},
|
|
774
|
-
{
|
|
775
|
-
"name": "AiSlashEditor 富文本编辑器",
|
|
776
|
-
"slug": "ai-slash-editor",
|
|
777
|
-
"kind": "component",
|
|
778
|
-
"description": "旧版富文本编辑器实现,封装 command selection 与提示菜单。",
|
|
779
|
-
"aiSummary": "旧版富文本编辑器实现,封装 command selection 与提示菜单。 源码位置:src/components/chat-input/ai-slash-editor/ai-slash-editor.vue。",
|
|
780
|
-
"relatedComponents": [],
|
|
781
|
-
"docFile": "docs/ai-slash-editor.md",
|
|
782
|
-
"domain": "input"
|
|
783
|
-
},
|
|
784
792
|
{
|
|
785
793
|
"name": "AiSlashInput 富文本命令输入",
|
|
786
794
|
"slug": "ai-slash-input",
|
|
787
795
|
"kind": "component",
|
|
788
|
-
"description": "ChatInput
|
|
789
|
-
"aiSummary": "ChatInput
|
|
796
|
+
"description": "ChatInput 内部富文本编辑区,负责触发符识别、资源标签插入与文档同步。",
|
|
797
|
+
"aiSummary": "ChatInput 内部富文本编辑区,基于 edix 编辑器渲染「文本 + 资源标签」文档。 自身不渲染菜单,只把触发方式与过滤关键字通过 menuChange 抛给上层,并暴露插入 / 替换 / 关闭菜单等命令。 源码位置:src/components/chat-input/ai-slash-input/ai-slash-input.vue。",
|
|
790
798
|
"relatedComponents": [
|
|
791
799
|
{
|
|
792
|
-
"slug": "
|
|
793
|
-
"relation": "
|
|
800
|
+
"slug": "chat-input",
|
|
801
|
+
"relation": "上层输入区,持有菜单状态并调用本组件的 expose 方法"
|
|
794
802
|
},
|
|
795
803
|
{
|
|
796
|
-
"slug": "
|
|
797
|
-
"relation": "
|
|
804
|
+
"slug": "input-menu-panel",
|
|
805
|
+
"relation": "由 menuChange 驱动的菜单面板,选中后回调插入方法"
|
|
798
806
|
},
|
|
799
807
|
{
|
|
800
|
-
"slug": "
|
|
801
|
-
"relation": "
|
|
808
|
+
"slug": "mention-tag",
|
|
809
|
+
"relation": "文档中的 tag 节点由 MentionTag 渲染"
|
|
802
810
|
}
|
|
803
811
|
],
|
|
804
812
|
"docFile": "docs/ai-slash-input.md",
|
|
805
813
|
"domain": "input"
|
|
806
814
|
},
|
|
807
|
-
{
|
|
808
|
-
"name": "AiSlashMenu 资源菜单",
|
|
809
|
-
"slug": "ai-slash-menu",
|
|
810
|
-
"kind": "component",
|
|
811
|
-
"description": "@ 资源选择菜单,展示资源项供 AiSlashInput 插入标签。",
|
|
812
|
-
"aiSummary": "@ 资源选择菜单,展示资源项供 AiSlashInput 插入标签。 源码位置:src/components/chat-input/ai-slash-input/ai-slash-menu/ai-slash-menu.vue。",
|
|
813
|
-
"relatedComponents": [],
|
|
814
|
-
"docFile": "docs/ai-slash-menu.md",
|
|
815
|
-
"domain": "input"
|
|
816
|
-
},
|
|
817
815
|
{
|
|
818
816
|
"name": "ChatInput 聊天输入框",
|
|
819
817
|
"slug": "chat-input",
|
|
820
818
|
"kind": "component",
|
|
821
|
-
"description": "
|
|
822
|
-
"aiSummary": "
|
|
819
|
+
"description": "聊天输入区,组合富文本输入、统一菜单(@ / \\ 与 + 号)、快捷指令、附件、引用、发送/停止等交互。",
|
|
820
|
+
"aiSummary": "聊天输入区,组合富文本输入、统一菜单、快捷指令、附件、引用、发送/停止等交互。 菜单数据由单一 menuSources 提供,按 type 分发到 `/` `@` `\\` 与左下角 + 号四种触发方式。 源码位置:src/components/chat-input/chat-input.vue。",
|
|
823
821
|
"relatedComponents": [
|
|
824
822
|
{
|
|
825
|
-
"slug": "
|
|
826
|
-
"relation": "
|
|
823
|
+
"slug": "ai-slash-input",
|
|
824
|
+
"relation": "内部富文本编辑区,负责触发符识别与标签插入"
|
|
827
825
|
},
|
|
828
826
|
{
|
|
829
|
-
"slug": "
|
|
830
|
-
"relation": "
|
|
827
|
+
"slug": "input-menu-panel",
|
|
828
|
+
"relation": "输入框正上方的统一菜单面板"
|
|
831
829
|
},
|
|
832
830
|
{
|
|
833
|
-
"slug": "
|
|
834
|
-
"relation": "
|
|
831
|
+
"slug": "add-menu-btn",
|
|
832
|
+
"relation": "左下角 + 号,唤起聚合菜单"
|
|
835
833
|
},
|
|
836
834
|
{
|
|
837
|
-
"slug": "
|
|
838
|
-
"relation": "
|
|
835
|
+
"slug": "mention-tag",
|
|
836
|
+
"relation": "菜单选中的资源以标签形式嵌入编辑器"
|
|
839
837
|
},
|
|
840
838
|
{
|
|
841
839
|
"slug": "model-selector",
|
|
842
840
|
"relation": "传入 models 后在发送按钮左侧默认展示模型选择器"
|
|
843
841
|
},
|
|
842
|
+
{
|
|
843
|
+
"slug": "shortcut-btns",
|
|
844
|
+
"relation": "底部附件区默认展示的快捷指令列表"
|
|
845
|
+
},
|
|
844
846
|
{
|
|
845
847
|
"slug": "cite-content",
|
|
846
848
|
"relation": "消息引用区展示选中的上下文片段"
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"slug": "chat-container",
|
|
852
|
+
"relation": "顶层聊天布局中作为输入区子组件"
|
|
847
853
|
}
|
|
848
854
|
],
|
|
849
855
|
"docFile": "docs/chat-input.md",
|
|
@@ -856,6 +862,10 @@
|
|
|
856
862
|
"description": "文件选择按钮,封装 input[type=file] 并输出选择事件。",
|
|
857
863
|
"aiSummary": "文件选择按钮,封装 input[type=file] 并输出选择事件。 源码位置:src/components/ai-buttons/file-upload-btn/file-upload-btn.vue。",
|
|
858
864
|
"relatedComponents": [
|
|
865
|
+
{
|
|
866
|
+
"slug": "add-menu-btn",
|
|
867
|
+
"relation": "ChatInput 内部已改用 + 号聚合菜单承载上传入口"
|
|
868
|
+
},
|
|
859
869
|
{
|
|
860
870
|
"slug": "chat-input",
|
|
861
871
|
"relation": "输入区附件上传按钮常见挂载位置"
|
|
@@ -888,6 +898,33 @@
|
|
|
888
898
|
"docFile": "docs/input-info-alert.md",
|
|
889
899
|
"domain": "input"
|
|
890
900
|
},
|
|
901
|
+
{
|
|
902
|
+
"name": "InputMenuPanel 输入框菜单",
|
|
903
|
+
"slug": "input-menu-panel",
|
|
904
|
+
"kind": "component",
|
|
905
|
+
"description": "输入框上方的统一菜单面板,@ / \\ 与 + 号共用一套数据源、分组与折叠逻辑。",
|
|
906
|
+
"aiSummary": "InputMenuPanel 渲染输入框菜单:分组标题 + InputMenuOption 条目 + 「更多 +N」折叠开关, 内置键盘上下导航与 Esc 关闭;分组数据由 useInputMenu 纯数据逻辑算出(按触发方式筛类型 → 关键字过滤 → 分组 → 折叠 → 扁平化)。 源码位置:src/components/chat-input/input-menu/(input-menu-panel.vue、input-menu-option.vue、use-input-menu.ts、constants.ts)。",
|
|
907
|
+
"relatedComponents": [
|
|
908
|
+
{
|
|
909
|
+
"slug": "chat-input",
|
|
910
|
+
"relation": "上层持有触发态与数据源并渲染本面板"
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
"slug": "ai-slash-input",
|
|
914
|
+
"relation": "触发方式与过滤关键字由编辑器 menuChange 抛出"
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
"slug": "add-menu-btn",
|
|
918
|
+
"relation": "+ 号唤起 plus 触发的聚合菜单"
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
"slug": "resource-icon",
|
|
922
|
+
"relation": "条目左侧图标由 ResourceIcon 渲染"
|
|
923
|
+
}
|
|
924
|
+
],
|
|
925
|
+
"docFile": "docs/input-menu-panel.md",
|
|
926
|
+
"domain": "input"
|
|
927
|
+
},
|
|
891
928
|
{
|
|
892
929
|
"name": "ModelSelector 模型选择器",
|
|
893
930
|
"slug": "model-selector",
|
|
@@ -1163,7 +1200,7 @@
|
|
|
1163
1200
|
"slug": "file-artifact-panel",
|
|
1164
1201
|
"kind": "component",
|
|
1165
1202
|
"description": "汇总当前会话全部文件产物,支持搜索、选中与分类型预览,挂载在 ChatContainer 侧栏「文件产物」Tab。",
|
|
1166
|
-
"aiSummary": "汇总当前会话所有 AssistantMessage 的 artifacts(按 outputId
|
|
1203
|
+
"aiSummary": "汇总当前会话所有 AssistantMessage 的 artifacts(按 outputId 去重),支持关键词搜索、列表选中、复制、引用到输入框与下载; 预览区委托 ArtifactPreviewHost:由 resolveFileKind 把扩展名归入 code / markdown / html / text / image / binary 六类, 前四类走 text_from_download 拉正文(code 交给 highlight.js 高亮),image / binary 走 preview_url; download_url / preview_url 经 onArtifactClick 每次异步获取(无 URL 缓存,并发去重); 预览重载键为 outputId:type;重试再次调用 load() 重新取链。 源码位置:src/components/chat-message/assistant-message/message-artifacts/file-artifact-panel.vue。",
|
|
1167
1204
|
"relatedComponents": [
|
|
1168
1205
|
{
|
|
1169
1206
|
"slug": "assistant-message",
|
|
@@ -1180,6 +1217,10 @@
|
|
|
1180
1217
|
{
|
|
1181
1218
|
"slug": "message-loading",
|
|
1182
1219
|
"relation": "ArtifactPreviewHost 取链 / 拉取正文过程使用 MessageLoading"
|
|
1220
|
+
},
|
|
1221
|
+
{
|
|
1222
|
+
"slug": "mention-tag",
|
|
1223
|
+
"relation": "引用后文件以资源标签形态进入输入框"
|
|
1183
1224
|
}
|
|
1184
1225
|
],
|
|
1185
1226
|
"docFile": "docs/file-artifact-panel.md",
|
|
@@ -1305,8 +1346,16 @@
|
|
|
1305
1346
|
"slug": "user-message",
|
|
1306
1347
|
"kind": "component",
|
|
1307
1348
|
"description": "渲染用户消息,支持纯文本、键值引用、文件附件和编辑态输入。",
|
|
1308
|
-
"aiSummary": "渲染用户消息:纯文本(非 Markdown)、键值引用、二进制附件与编辑态 ChatInput / ShortcutRender; 工具栏含 copy /
|
|
1349
|
+
"aiSummary": "渲染用户消息:纯文本(非 Markdown)、键值引用、二进制附件与编辑态 ChatInput / ShortcutRender; 正文经 CollapsibleContent 限高 200px,property.docSchema 含标签时改用 MentionText 还原资源标签; 工具栏含 copy / edit / delete。源码位置:src/components/chat-message/user-message/user-message.vue。",
|
|
1309
1350
|
"relatedComponents": [
|
|
1351
|
+
{
|
|
1352
|
+
"slug": "mention-text",
|
|
1353
|
+
"relation": "文档含标签时用它还原已选资源"
|
|
1354
|
+
},
|
|
1355
|
+
{
|
|
1356
|
+
"slug": "collapsible-content",
|
|
1357
|
+
"relation": "正文超过 200px 时折叠"
|
|
1358
|
+
},
|
|
1310
1359
|
{
|
|
1311
1360
|
"slug": "message-render",
|
|
1312
1361
|
"relation": "由 MessageRender 在 role 为 user 时创建"
|
|
@@ -1380,6 +1429,25 @@
|
|
|
1380
1429
|
"docFile": "docs/code-content.md",
|
|
1381
1430
|
"domain": "rendering"
|
|
1382
1431
|
},
|
|
1432
|
+
{
|
|
1433
|
+
"name": "CollapsibleContent 折叠内容",
|
|
1434
|
+
"slug": "collapsible-content",
|
|
1435
|
+
"kind": "component",
|
|
1436
|
+
"description": "内容超过阈值高度时折叠,并在下方展示「显示更多 / 收起」。",
|
|
1437
|
+
"aiSummary": "CollapsibleContent 用 ResizeObserver 持续测量插槽真实高度,超过 maxHeight(默认 200px)才折叠并显示切换按钮; 折叠通过外层 max-height + overflow hidden 实现,展开态可由 v-model:expanded 受控,便于「全部展开」这类批量操作。 源码位置:src/components/chat-content/collapsible-content/collapsible-content.vue。",
|
|
1438
|
+
"relatedComponents": [
|
|
1439
|
+
{
|
|
1440
|
+
"slug": "user-message",
|
|
1441
|
+
"relation": "用户消息正文超过 200px 时折叠"
|
|
1442
|
+
},
|
|
1443
|
+
{
|
|
1444
|
+
"slug": "activity-layout",
|
|
1445
|
+
"relation": "活动消息的另一种折叠布局"
|
|
1446
|
+
}
|
|
1447
|
+
],
|
|
1448
|
+
"docFile": "docs/collapsible-content.md",
|
|
1449
|
+
"domain": "rendering"
|
|
1450
|
+
},
|
|
1383
1451
|
{
|
|
1384
1452
|
"name": "CommonErrorContent 错误内容",
|
|
1385
1453
|
"slug": "common-error-content",
|
|
@@ -1502,6 +1570,56 @@
|
|
|
1502
1570
|
"docFile": "docs/markdown-content.md",
|
|
1503
1571
|
"domain": "rendering"
|
|
1504
1572
|
},
|
|
1573
|
+
{
|
|
1574
|
+
"name": "MentionTag 资源标签",
|
|
1575
|
+
"slug": "mention-tag",
|
|
1576
|
+
"kind": "component",
|
|
1577
|
+
"description": "单个资源标签,带类型图标、描述气泡与会话产物点击预览。",
|
|
1578
|
+
"aiSummary": "MentionTag 渲染「图标 + 蓝色名称」的内联资源标签:节点数据全部落在 data-tag-* 属性上, 既是编辑器 void 节点的识别依据,也让消息里复制的标签能原样还原; description 非空时 hover / 点击弹出「类型:名称 + 描述」气泡;type 为 artifact 且存在产物预览上下文时点击打开侧栏预览。 源码位置:src/components/mention/mention-tag.vue(气泡见 mention-popover.vue 与 create-mention-tippy.ts)。",
|
|
1579
|
+
"relatedComponents": [
|
|
1580
|
+
{
|
|
1581
|
+
"slug": "mention-text",
|
|
1582
|
+
"relation": "按文档结构批量渲染标签与文本"
|
|
1583
|
+
},
|
|
1584
|
+
{
|
|
1585
|
+
"slug": "ai-slash-input",
|
|
1586
|
+
"relation": "编辑器内的 tag 节点由本组件渲染"
|
|
1587
|
+
},
|
|
1588
|
+
{
|
|
1589
|
+
"slug": "resource-icon",
|
|
1590
|
+
"relation": "标签左侧图标"
|
|
1591
|
+
},
|
|
1592
|
+
{
|
|
1593
|
+
"slug": "file-artifact-panel",
|
|
1594
|
+
"relation": "artifact 标签点击后打开的侧栏预览"
|
|
1595
|
+
}
|
|
1596
|
+
],
|
|
1597
|
+
"docFile": "docs/mention-tag.md",
|
|
1598
|
+
"domain": "rendering"
|
|
1599
|
+
},
|
|
1600
|
+
{
|
|
1601
|
+
"name": "MentionText 标签文本",
|
|
1602
|
+
"slug": "mention-text",
|
|
1603
|
+
"kind": "component",
|
|
1604
|
+
"description": "把发送时保留的富文本文档还原成「文本 + 资源标签」,用于用户消息回显。",
|
|
1605
|
+
"aiSummary": "MentionText 接收一份 TagSchema 文档(二维数组:行 → 节点),逐行渲染:text 节点输出文本、 tag 节点交给 MentionTag;行间用 <br> 分隔,空白以 pre-wrap 保留。 UserMessage 在 property.docSchema 含标签时用它替代 TextContent。 源码位置:src/components/mention/mention-text.vue。",
|
|
1606
|
+
"relatedComponents": [
|
|
1607
|
+
{
|
|
1608
|
+
"slug": "mention-tag",
|
|
1609
|
+
"relation": "tag 节点的实际渲染者"
|
|
1610
|
+
},
|
|
1611
|
+
{
|
|
1612
|
+
"slug": "user-message",
|
|
1613
|
+
"relation": "用户消息在文档含标签时改用本组件回显"
|
|
1614
|
+
},
|
|
1615
|
+
{
|
|
1616
|
+
"slug": "text-content",
|
|
1617
|
+
"relation": "纯文本消息仍走 TextContent"
|
|
1618
|
+
}
|
|
1619
|
+
],
|
|
1620
|
+
"docFile": "docs/mention-text.md",
|
|
1621
|
+
"domain": "rendering"
|
|
1622
|
+
},
|
|
1505
1623
|
{
|
|
1506
1624
|
"name": "MermaidContent Mermaid 图表",
|
|
1507
1625
|
"slug": "mermaid-content",
|
|
@@ -1550,6 +1668,10 @@
|
|
|
1550
1668
|
{
|
|
1551
1669
|
"slug": "user-message",
|
|
1552
1670
|
"relation": "用户消息中纯文本内容展示"
|
|
1671
|
+
},
|
|
1672
|
+
{
|
|
1673
|
+
"slug": "mention-text",
|
|
1674
|
+
"relation": "文档含资源标签时的替代渲染"
|
|
1553
1675
|
}
|
|
1554
1676
|
],
|
|
1555
1677
|
"docFile": "docs/text-content.md",
|
|
@@ -1736,7 +1858,7 @@
|
|
|
1736
1858
|
"slug": "use-flow-node-actions",
|
|
1737
1859
|
"kind": "composable",
|
|
1738
1860
|
"description": "聚合 FlowAgent 节点行尾操作(详情 / 重试 / 跳过)为声明式视图模型列表,显隐与 resume 回调收敛于此。",
|
|
1739
|
-
"aiSummary": "useFlowNodeActions 接收 onInterruptResume 与 openNodeDetail,返回 getNodeActions 与 isNodePending。 失败节点按 retryable/skippable 展示重试/跳过,详情恒在末尾;点击后进入 pending 防重复提交, 以 task_id:node_id:retry 为键自动收敛;点击 resume 时不传 interrupt。
|
|
1861
|
+
"aiSummary": "useFlowNodeActions 接收 onInterruptResume 与 openNodeDetail,返回 getNodeActions 与 isNodePending。 失败节点按 retryable/skippable 展示重试/跳过,详情恒在末尾;点击后进入 pending 防重复提交, 以 task_id:node_id:retry 为键自动收敛;点击 resume 时不传 interrupt。",
|
|
1740
1862
|
"relatedComponents": [
|
|
1741
1863
|
{
|
|
1742
1864
|
"slug": "flow-agent-content",
|
|
@@ -1767,8 +1889,8 @@
|
|
|
1767
1889
|
"name": "useGlobalConfig",
|
|
1768
1890
|
"slug": "use-global-config",
|
|
1769
1891
|
"kind": "composable",
|
|
1770
|
-
"description": "在聊天根容器与子组件之间通过 provide/inject
|
|
1771
|
-
"aiSummary": "useGlobalConfig 接收 GlobalConfig(含 size?: ComputedRef<AiSizeMode>、supportUpload: ComputedRef<boolean>、timezone?: ComputedRef<string | undefined>),以 GLOBAL_CONFIG_TOKEN provide 给后代; injectGlobalConfig 在子组件中取出配置,无 Provider 时返回 undefined。ChatContainer 在 setup 中调用 useGlobalConfig 注入 size、supportUpload 与
|
|
1892
|
+
"description": "在聊天根容器与子组件之间通过 provide/inject 共享全局展示配置(字号主题档位、是否支持上传、消息时间时区、输入框菜单数据源)。",
|
|
1893
|
+
"aiSummary": "useGlobalConfig 接收 GlobalConfig(含 size?: ComputedRef<AiSizeMode>、supportUpload: ComputedRef<boolean>、timezone?: ComputedRef<string | undefined>、menuSources?: ComputedRef<IInputMenuItem[]>),以 GLOBAL_CONFIG_TOKEN provide 给后代; injectGlobalConfig 在子组件中取出配置,无 Provider 时返回 undefined。ChatContainer 在 setup 中调用 useGlobalConfig 注入 size、supportUpload、timezone 与 menuSources; 后代组件可通过 injectGlobalConfig 读取配置;字号主题主要通过根节点 data-ai-size 与 CSS 变量生效。",
|
|
1772
1894
|
"relatedComponents": [
|
|
1773
1895
|
{
|
|
1774
1896
|
"slug": "chat-container",
|
|
@@ -1781,16 +1903,46 @@
|
|
|
1781
1903
|
],
|
|
1782
1904
|
"docFile": "docs/use-global-config.md"
|
|
1783
1905
|
},
|
|
1906
|
+
{
|
|
1907
|
+
"name": "useInputMention",
|
|
1908
|
+
"slug": "use-input-mention",
|
|
1909
|
+
"kind": "composable",
|
|
1910
|
+
"description": "通过 provide/inject 把「资源插入输入框」的能力开放给任意深度的后代组件。",
|
|
1911
|
+
"aiSummary": "useInputMentionProvider 由持有输入框的容器(ChatContainer)提供 insertMention, useInputMentionConsumer 在任意后代取出;无 Provider(只读 / 分享态)时返回 undefined,调用方据此隐藏「引用」入口。 消息区文件卡片与侧栏产物面板即用它把文件以标签形式追加进输入框。 源码位置:src/composables/use-input-mention.ts。",
|
|
1912
|
+
"relatedComponents": [
|
|
1913
|
+
{
|
|
1914
|
+
"slug": "chat-container",
|
|
1915
|
+
"relation": "根容器提供 insertMention,内部转发给 ChatInput 实例"
|
|
1916
|
+
},
|
|
1917
|
+
{
|
|
1918
|
+
"slug": "chat-input",
|
|
1919
|
+
"relation": "实际执行插入的组件,expose insertMention"
|
|
1920
|
+
},
|
|
1921
|
+
{
|
|
1922
|
+
"slug": "file-artifact-panel",
|
|
1923
|
+
"relation": "侧栏产物面板据此展示「引用」按钮"
|
|
1924
|
+
},
|
|
1925
|
+
{
|
|
1926
|
+
"slug": "assistant-message",
|
|
1927
|
+
"relation": "消息内文件卡片据此展示「引用」按钮"
|
|
1928
|
+
}
|
|
1929
|
+
],
|
|
1930
|
+
"docFile": "docs/use-input-mention.md"
|
|
1931
|
+
},
|
|
1784
1932
|
{
|
|
1785
1933
|
"name": "useMenuKeydown",
|
|
1786
1934
|
"slug": "use-menu-keydown",
|
|
1787
1935
|
"kind": "composable",
|
|
1788
1936
|
"description": "为弹出菜单提供键盘导航能力的组合式函数。在 `onMounted` 时于 **`window` 捕获阶段**注册 `keydown` 监听,在 `onScopeDispose` 时自动移除,通过 `menuRef.offsetParent` 检测菜单可见性来决定是否响应按键。",
|
|
1789
|
-
"aiSummary": "useMenuKeydown 接收 items、menuRef、onSelect,在 window 捕获阶段监听 keydown;菜单不可见(offsetParent 为空)或列表为空时不响应。 维护 activeIndex,处理 ArrowUp/ArrowDown 循环与 Enter 选中,并 scrollIntoView 当前 .is-active 项。
|
|
1937
|
+
"aiSummary": "useMenuKeydown 接收 items、menuRef、onSelect,在 window 捕获阶段监听 keydown;菜单不可见(offsetParent 为空)或列表为空时不响应。 维护 activeIndex,处理 ArrowUp/ArrowDown 循环与 Enter 选中,并 scrollIntoView 当前 .is-active 项。 InputMenuPanel(输入框统一菜单)与 ModelSelectorPanel(模型下拉)内部使用。",
|
|
1790
1938
|
"relatedComponents": [
|
|
1791
1939
|
{
|
|
1792
|
-
"slug": "
|
|
1793
|
-
"relation": "
|
|
1940
|
+
"slug": "input-menu-panel",
|
|
1941
|
+
"relation": "输入框菜单的键盘导航"
|
|
1942
|
+
},
|
|
1943
|
+
{
|
|
1944
|
+
"slug": "model-selector",
|
|
1945
|
+
"relation": "模型下拉的键盘导航"
|
|
1794
1946
|
}
|
|
1795
1947
|
],
|
|
1796
1948
|
"docFile": "docs/use-menu-keydown.md"
|
|
@@ -1937,7 +2089,7 @@
|
|
|
1937
2089
|
"slug": "overflow-tips",
|
|
1938
2090
|
"kind": "directive",
|
|
1939
2091
|
"description": "当元素文本**水平溢出**(`scrollWidth > clientWidth`)时,鼠标悬停自动弹出 Tippy tooltip 显示完整内容;未溢出时不创建实例,零性能损耗。",
|
|
1940
|
-
"aiSummary": "v-overflow-tips 在元素水平溢出(scrollWidth > clientWidth)时于 mouseenter 懒创建 Tippy,展示完整文本或自定义 text/content。 结合 IntersectionObserver 仅在可见时绑定悬停;隐藏时销毁实例。指令值为 Partial<TippyProps> 与 disabled 等。 DescPanel、ExecutionSummary、ToolcallRender、
|
|
2092
|
+
"aiSummary": "v-overflow-tips 在元素水平溢出(scrollWidth > clientWidth)时于 mouseenter 懒创建 Tippy,展示完整文本或自定义 text/content。 结合 IntersectionObserver 仅在可见时绑定悬停;隐藏时销毁实例。指令值为 Partial<TippyProps> 与 disabled 等。 DescPanel、ExecutionSummary、ToolcallRender、InputMenuPanel 等用于标题或列表溢出提示。",
|
|
1941
2093
|
"relatedComponents": [
|
|
1942
2094
|
{
|
|
1943
2095
|
"slug": "desc-panel",
|
|
@@ -1952,8 +2104,8 @@
|
|
|
1952
2104
|
"relation": "工具标题行溢出"
|
|
1953
2105
|
},
|
|
1954
2106
|
{
|
|
1955
|
-
"slug": "
|
|
1956
|
-
"relation": "
|
|
2107
|
+
"slug": "input-menu-panel",
|
|
2108
|
+
"relation": "菜单条目名称溢出"
|
|
1957
2109
|
}
|
|
1958
2110
|
],
|
|
1959
2111
|
"docFile": "docs/overflow-tips.md"
|
package/dist/types/editor.d.ts
CHANGED
|
@@ -1,30 +1 @@
|
|
|
1
|
-
export interface IAiSlashGroupItem {
|
|
2
|
-
isExpand: boolean;
|
|
3
|
-
items: IAiSlashMenuItem[];
|
|
4
|
-
name: string;
|
|
5
|
-
type: keyof typeof resourceTypeMap;
|
|
6
|
-
}
|
|
7
|
-
export interface IAiSlashMenuItem {
|
|
8
|
-
[key: string]: unknown;
|
|
9
|
-
code?: string;
|
|
10
|
-
icon: null | string;
|
|
11
|
-
id?: number | string;
|
|
12
|
-
name: string;
|
|
13
|
-
type: keyof typeof resourceTypeMap;
|
|
14
|
-
}
|
|
15
|
-
export declare const resourceTypeMap: {
|
|
16
|
-
readonly tool: "工具";
|
|
17
|
-
readonly skill: "Skill";
|
|
18
|
-
readonly mcp: "MCP";
|
|
19
|
-
readonly doc: "知识库";
|
|
20
|
-
readonly knowledgebase: "知识库";
|
|
21
|
-
readonly shortcut: "快捷指令";
|
|
22
|
-
};
|
|
23
|
-
export type ResourceType = keyof typeof resourceTypeMap;
|
|
24
1
|
export declare const noop: () => void;
|
|
25
|
-
export interface ISkillListItem {
|
|
26
|
-
description: string;
|
|
27
|
-
icon: string;
|
|
28
|
-
skill_code: string;
|
|
29
|
-
skill_name: string;
|
|
30
|
-
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
2
|
+
import type { lang } from '../lang/lang';
|
|
3
|
+
/**
|
|
4
|
+
* 输入框菜单可选项类型。
|
|
5
|
+
*
|
|
6
|
+
* `file` 是组件内置的动作项(触发本地文件上传),不由业务方通过 `menuSources` 提供。
|
|
7
|
+
*/
|
|
8
|
+
export declare const MENU_ITEM_TYPES: readonly ["file", "skill", "mcp", "tool", "knowledgebase", "doc", "artifact", "prompt"];
|
|
9
|
+
/** 面板渲染用的分组(已应用关键字过滤与折叠阈值) */
|
|
10
|
+
export interface IInputMenuGroup {
|
|
11
|
+
/** 分组下方是否需要分隔线 */
|
|
12
|
+
divided: boolean;
|
|
13
|
+
/** 是否已展开全部条目 */
|
|
14
|
+
expanded: boolean;
|
|
15
|
+
/** 当前可见条目 */
|
|
16
|
+
items: IInputMenuItem[];
|
|
17
|
+
key: string;
|
|
18
|
+
/** 分组标题的文案 key,渲染时经 t() 转换 */
|
|
19
|
+
name: keyof typeof lang;
|
|
20
|
+
/** 被折叠隐藏的条数,为 0 表示无需折叠 */
|
|
21
|
+
restCount: number;
|
|
22
|
+
}
|
|
23
|
+
/** 输入框菜单的统一可选项模型 */
|
|
24
|
+
export interface IInputMenuItem {
|
|
25
|
+
/** Prompt 全文;选中 prompt 时用它整体替换输入框内容 */
|
|
26
|
+
content?: string;
|
|
27
|
+
/** 描述文案,有值时 hover 弹出气泡说明 */
|
|
28
|
+
description?: string;
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* 图标:URL 字符串或 Vue 组件;缺省时按 type 回退到内置图标,artifact 按文件名后缀推导。
|
|
32
|
+
*
|
|
33
|
+
* 注意:选中后插入输入框的标签会把图标序列化到 DOM 属性上(文档需脱离数据源独立还原),
|
|
34
|
+
* 因此只有字符串形式能被保留,传组件时标签内会回退为类型默认图标。
|
|
35
|
+
*/
|
|
36
|
+
icon?: Component | string;
|
|
37
|
+
/** artifact 类型必须使用文件的 outputId,不能用 URL 或文件名代替 */
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
type: MenuItemType;
|
|
41
|
+
}
|
|
42
|
+
export type MenuItemType = (typeof MENU_ITEM_TYPES)[number];
|
|
43
|
+
/**
|
|
44
|
+
* 菜单触发方式。字符触发在编辑器中输入对应字符唤起,`plus` 由左下角 + 号按钮唤起。
|
|
45
|
+
*/
|
|
46
|
+
export type MenuTrigger = '/' | '@' | '\\' | 'plus';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 附件与 artifact 标签的互转。
|
|
3
|
+
*
|
|
4
|
+
* 上传附件既以文件卡片展示,也要以标签形式进入文档(业务方据此把已选资源发给后端)。
|
|
5
|
+
* 注入与剥离必须共用同一套 value 口径,否则发送时补上的标签在回显时剥不掉,就会重复展示。
|
|
6
|
+
*/
|
|
7
|
+
import type { AIFileInfo } from '../ag-ui/types/file';
|
|
8
|
+
import type { TagSchema } from '../types/input';
|
|
9
|
+
type TagLine = TagSchema[number];
|
|
10
|
+
type TagNode = TagLine[number];
|
|
11
|
+
type ArtifactTagNode = Extract<TagNode, {
|
|
12
|
+
type: 'tag';
|
|
13
|
+
}>;
|
|
14
|
+
/** 附件的最小身份契约,`Partial<UploadFile>` 与 `BinaryInputContent` 均可直接传入 */
|
|
15
|
+
export type ArtifactIdentityLike = {
|
|
16
|
+
id?: string;
|
|
17
|
+
outputId?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* 文件转 artifact 标签节点:`label` 取展示名(上传接口 `name`),
|
|
21
|
+
* `value` 取文件身份(上传接口 `path`,即产物 `outputId`)。
|
|
22
|
+
*/
|
|
23
|
+
export declare const toArtifactTagNode: (file: AIFileInfo) => ArtifactTagNode;
|
|
24
|
+
/**
|
|
25
|
+
* 发送前把待发送附件补成一行 artifact 标签。
|
|
26
|
+
*
|
|
27
|
+
* 编辑回填的文档可能已含同一文件的标签(上次发送时注入的),按 value 去重避免重复追加。
|
|
28
|
+
*/
|
|
29
|
+
export declare const appendArtifactTags: (doc: TagSchema, files: readonly AIFileInfo[]) => TagSchema;
|
|
30
|
+
/**
|
|
31
|
+
* 消息回显与编辑回填前,去掉已由附件卡片承载的 artifact 标签,避免同一文件重复展示。
|
|
32
|
+
*
|
|
33
|
+
* 历史消息经 chat-helper 转换后只剩 `id`,因此 `id` 与 `outputId` 都参与匹配。
|
|
34
|
+
*/
|
|
35
|
+
export declare const omitArtifactTags: (doc: TagSchema, files: readonly ArtifactIdentityLike[]) => TagSchema;
|
|
36
|
+
export {};
|