feat: 完善 Agent 标准交互与安全运行时
- 接入 AG-UI 运行投影、Turn 时间线和审批隔离 - 增加 Agent Skill 冻结绑定与运行时消费闭环 - 增加受控工作区、内置工具和私有 Artifact 生命周期
This commit is contained in:
@@ -3,7 +3,9 @@ import type { AgentStudioNodeData } from './types';
|
||||
|
||||
import { computed } from 'vue';
|
||||
|
||||
import { Connection, Cpu, Files, Link, Share } from '@element-plus/icons-vue';
|
||||
import { KnowledgeIcon, SkillIcon } from '@easyflow/icons';
|
||||
|
||||
import { Connection, Cpu, Link, Share } from '@element-plus/icons-vue';
|
||||
import { ElIcon } from 'element-plus';
|
||||
|
||||
const props = defineProps<{
|
||||
@@ -13,9 +15,10 @@ const props = defineProps<{
|
||||
const iconComponent = computed(() => {
|
||||
const icons = {
|
||||
base: Cpu,
|
||||
knowledge: Files,
|
||||
knowledge: KnowledgeIcon,
|
||||
mcp: Link,
|
||||
plugin: Connection,
|
||||
skill: SkillIcon,
|
||||
workflow: Share,
|
||||
};
|
||||
return icons[props.data.iconKey];
|
||||
@@ -45,6 +48,12 @@ const iconComponent = computed(() => {
|
||||
<span v-if="data.detail" class="agent-studio-node__detail">
|
||||
{{ data.detail }}
|
||||
</span>
|
||||
<span v-if="data.previewItems?.length" class="agent-studio-node__preview">
|
||||
<span v-for="item in data.previewItems" :key="item">{{ item }}</span>
|
||||
<span v-if="data.remainingCount" class="agent-studio-node__remaining">
|
||||
+{{ data.remainingCount }}
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
</template>
|
||||
@@ -119,6 +128,12 @@ const iconComponent = computed(() => {
|
||||
min-height: 78px;
|
||||
}
|
||||
|
||||
.agent-studio-node--skill {
|
||||
align-items: flex-start;
|
||||
width: 240px;
|
||||
min-height: 120px;
|
||||
}
|
||||
|
||||
.agent-studio-node__icon {
|
||||
display: inline-flex;
|
||||
flex: 0 0 auto;
|
||||
@@ -200,6 +215,30 @@ const iconComponent = computed(() => {
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
|
||||
.agent-studio-node__preview {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-1);
|
||||
padding-top: var(--space-2);
|
||||
margin-top: var(--space-2);
|
||||
overflow: hidden;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
color: var(--el-text-color-regular);
|
||||
border-top: 1px solid hsl(var(--line-subtle));
|
||||
}
|
||||
|
||||
.agent-studio-node__preview > span {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.agent-studio-node__remaining {
|
||||
font-weight: 650;
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
@supports not (color: color-mix(in srgb, red, blue)) {
|
||||
.agent-studio-node:hover {
|
||||
border-color: var(--el-color-primary-light-7);
|
||||
|
||||
Reference in New Issue
Block a user