- Vue 3 + TypeScript + Vite project structure - Element Plus UI components with dark theme - Pinia state management for agents and tasks - JSPlumb integration for visual workflow editing - SVG icon system for agent roles - Axios request layer with API proxy configuration - Tailwind CSS for styling - Docker deployment with Caddy web server - Complete development toolchain (ESLint, Prettier, Vitest) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
146 lines
3.1 KiB
TypeScript
146 lines
3.1 KiB
TypeScript
export interface AgentMapIcon {
|
|
name: string
|
|
icon: string
|
|
color: string
|
|
}
|
|
// "肾脏病学家": {
|
|
// name: "肾脏病学家",
|
|
// icon: "doctor",
|
|
// color: "#00A2D2",
|
|
// },
|
|
export const agentMapIcon = new Map<string, AgentMapIcon>()
|
|
agentMapIcon.set("船舶设计师", {
|
|
name: '船舶设计师',
|
|
icon: 'shejishi',
|
|
color: '#65AE00',
|
|
})
|
|
agentMapIcon.set("防护工程专家", {
|
|
name: '防护工程专家',
|
|
icon: 'engineer',
|
|
color: '#B06CFE',
|
|
})
|
|
agentMapIcon.set("病理生理学家", {
|
|
name: '病理生理学家',
|
|
icon: 'doctor',
|
|
color: '#00A2D2',
|
|
})
|
|
agentMapIcon.set("药物化学家", {
|
|
name: '药物化学家',
|
|
icon: 'specialist',
|
|
color: '#FF7914',
|
|
})
|
|
agentMapIcon.set("制剂工程师", {
|
|
name: '制剂工程师',
|
|
icon: 'medical',
|
|
color: '#65AE00',
|
|
})
|
|
agentMapIcon.set("监管事务专家", {
|
|
name: '监管事务专家',
|
|
icon: 'researcher',
|
|
color: '#0064C4',
|
|
})
|
|
agentMapIcon.set("物理学家", {
|
|
name: '物理学家',
|
|
icon: 'specialist',
|
|
color: '#B06CFE',
|
|
})
|
|
agentMapIcon.set("实验材料学家", {
|
|
name: '实验材料学家',
|
|
icon: 'researcher',
|
|
color: '#C01E6A',
|
|
})
|
|
agentMapIcon.set("计算模拟专家", {
|
|
name: '计算模拟专家',
|
|
icon: 'researcher',
|
|
color: '#FF7914',
|
|
})
|
|
agentMapIcon.set("腐蚀机理研究员", {
|
|
name: '腐蚀机理研究员',
|
|
icon: 'specialist',
|
|
color: '#00C8D2',
|
|
})
|
|
agentMapIcon.set("先进材料研发员", {
|
|
name: '先进材料研发员',
|
|
icon: 'engineer',
|
|
color: '#00C8D2',
|
|
})
|
|
agentMapIcon.set("肾脏病学家", {
|
|
name: '肾脏病学家',
|
|
icon: 'doctor',
|
|
color: '#00A2D2',
|
|
})
|
|
agentMapIcon.set("临床研究协调员", {
|
|
name: '临床研究协调员',
|
|
icon: 'renyuan',
|
|
color: '#FF7914',
|
|
})
|
|
agentMapIcon.set("中医药专家", {
|
|
name: '中医药专家',
|
|
icon: 'medical',
|
|
color: '#00C8D2',
|
|
})
|
|
agentMapIcon.set("药物安全专家", {
|
|
name: '药物安全专家',
|
|
icon: 'medical',
|
|
color: '#65AE00',
|
|
})
|
|
agentMapIcon.set("二维材料科学家", {
|
|
name: '二维材料科学家',
|
|
icon: 'shejishi',
|
|
color: '#EB6363',
|
|
})
|
|
agentMapIcon.set("光电物理学家", {
|
|
name: '光电物理学家',
|
|
icon: 'specialist',
|
|
color: '#079EFF',
|
|
})
|
|
agentMapIcon.set("机器学习专家", {
|
|
name: '机器学习专家',
|
|
icon: 'researcher',
|
|
color: '#8700AE',
|
|
})
|
|
agentMapIcon.set("流体动力学专家", {
|
|
name: '流体动力学专家',
|
|
icon: 'specialist',
|
|
color: '#EB6363',
|
|
})
|
|
|
|
export function getAgentMapIcon(agentName: string):AgentMapIcon {
|
|
return agentMapIcon.get(agentName) ?? agentMapIcon.get('监管事务专家')!
|
|
}
|
|
|
|
export interface AgentMapDuty {
|
|
name: string
|
|
key: string
|
|
color: string
|
|
}
|
|
|
|
// 职责映射
|
|
// 提议 评审 改进 总结
|
|
export const agentMapDuty: Record<string, AgentMapDuty> = {
|
|
Propose: {
|
|
name: '提议',
|
|
key: 'propose',
|
|
color: '#0060FF',
|
|
},
|
|
Critique: {
|
|
name: '评审',
|
|
key: 'review',
|
|
color: '#FFFC08',
|
|
},
|
|
Improve: {
|
|
name: '改进',
|
|
key: 'improve',
|
|
color: '#9808FF',
|
|
},
|
|
Finalize: {
|
|
name: '总结',
|
|
key: 'summary',
|
|
color: '#FF6F08',
|
|
},
|
|
}
|
|
|
|
export function getActionTypeDisplay(type: string) {
|
|
return agentMapDuty[type]
|
|
}
|