Add streaming support and refactor Chat UI
- Add run_stream method to AgentCore for streaming output - Add base_url parameter to LLM clients for OpenRouter support - Add xbot module for new agent implementation - Refactor Chat.vue into composable + components (ChatHeader, ChatMessage, ChatInput, ChatSidebar, ChatAgentSelector) - Add ChatStream handler for SSE streaming in Go server - Add UseXBot field to chat request Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -19,8 +19,15 @@ const newAgent = ref({
|
||||
skills: '',
|
||||
knowledge: '',
|
||||
prompt: '',
|
||||
avatar: '🤖',
|
||||
})
|
||||
|
||||
// 头像选项
|
||||
const avatarOptions = [
|
||||
'🤖', '🧠', '💻', '📊', '🔬', '🎧', '✨', '💬', '🔮', '🌙',
|
||||
'🐉', '☁️', '🎨', '🎯', '🚀', '⚡', '🔥', '💡', '🎭', '🎪'
|
||||
]
|
||||
|
||||
// Skills 选项
|
||||
const skillsOptions = [
|
||||
{ value: 'research', label: 'Research' },
|
||||
@@ -41,7 +48,7 @@ const knowledgeOptions = [
|
||||
|
||||
// 打开创建弹窗
|
||||
const openCreateModal = () => {
|
||||
newAgent.value = { name: '', description: '', skills: '', knowledge: '', prompt: '' }
|
||||
newAgent.value = { name: '', description: '', skills: '', knowledge: '', prompt: '', avatar: '🤖' }
|
||||
showCreateModal.value = true
|
||||
}
|
||||
|
||||
@@ -58,7 +65,7 @@ const createAgent = async () => {
|
||||
agents.value.unshift({
|
||||
id: newId,
|
||||
name: newAgent.value.name,
|
||||
avatar: '🤖',
|
||||
avatar: newAgent.value.avatar,
|
||||
description: newAgent.value.description,
|
||||
accentColor: '#f97316',
|
||||
gradient: 'from-orange-500/20 to-amber-500/20',
|
||||
@@ -259,6 +266,22 @@ const deleteAgent = (id: number) => {
|
||||
></textarea>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-300 mb-2">Avatar</label>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
<button
|
||||
v-for="avatar in avatarOptions"
|
||||
:key="avatar"
|
||||
type="button"
|
||||
@click="newAgent.avatar = avatar"
|
||||
class="w-10 h-10 rounded-lg flex items-center justify-center text-lg transition-all"
|
||||
:class="newAgent.avatar === avatar ? 'bg-primary-orange text-white ring-2 ring-orange-400' : 'bg-dark-600 text-gray-300 hover:bg-dark-500'"
|
||||
>
|
||||
{{ avatar }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-300 mb-2">Skills *</label>
|
||||
<el-select v-model="newAgent.skills" placeholder="Select skills" class="w-full" size="large" popper-class="dark-select-dropdown">
|
||||
|
||||
Reference in New Issue
Block a user