config.updated WS event + provider in AgentConfig update
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s

- PATCH /members/{id} sends config.updated WS event to agent
- WSEventType.CONFIG_UPDATED added to enums
- update_member handles provider + max_concurrent_tasks
This commit is contained in:
markov 2026-02-27 16:32:27 +01:00
parent 80494c5058
commit 4dde7b940a
2 changed files with 22 additions and 0 deletions

View File

@ -160,6 +160,7 @@ async def update_member(member_id: str, req: MemberUpdate, db: AsyncSession = De
if req.avatar_url is not None: if req.avatar_url is not None:
member.avatar_url = req.avatar_url member.avatar_url = req.avatar_url
config_changed = False
if req.agent_config and member.type == MemberType.AGENT: if req.agent_config and member.type == MemberType.AGENT:
if not member.agent_config: if not member.agent_config:
member.agent_config = AgentConfig(member_id=member.id) member.agent_config = AgentConfig(member_id=member.id)
@ -174,9 +175,29 @@ async def update_member(member_id: str, req: MemberUpdate, db: AsyncSession = De
member.agent_config.prompt = ac.prompt member.agent_config.prompt = ac.prompt
if ac.model is not None: if ac.model is not None:
member.agent_config.model = ac.model member.agent_config.model = ac.model
config_changed = True
await db.commit() await db.commit()
await db.refresh(member) await db.refresh(member)
# Notify agent of config change via WS
if config_changed and member.agent_config:
from ..ws.manager import manager
from ..enums import WSEventType
ac = member.agent_config
await manager.send_to_member(str(member.id), {
"type": WSEventType.CONFIG_UPDATED,
"data": {
"model": ac.model,
"provider": ac.provider,
"prompt": ac.prompt,
"chat_listen": ac.chat_listen,
"task_listen": ac.task_listen,
"max_concurrent_tasks": ac.max_concurrent_tasks,
"capabilities": ac.capabilities or [],
},
})
return member_out(member) return member_out(member)

View File

@ -103,3 +103,4 @@ class WSEventType(StrEnum):
AGENT_STREAM_DELTA = "agent.stream.delta" AGENT_STREAM_DELTA = "agent.stream.delta"
AGENT_STREAM_TOOL = "agent.stream.tool" AGENT_STREAM_TOOL = "agent.stream.tool"
AGENT_STREAM_END = "agent.stream.end" AGENT_STREAM_END = "agent.stream.end"
CONFIG_UPDATED = "config.updated"