fix: restore and simplify events

This commit is contained in:
Shivering Ocelot committed 2026-05-30 18:28:49 -05:00
1 parent 77addb889d
commit d7e92f38f3
4 files changed
+9 -5

No files matched your search

+1 -1
View File
@@ -31,7 +31,7 @@ class Agent:
agent_class = type(self)
self.config = {field.name: data.get(field.name, field.default) for field in getattr(agent_class, 'schema_fields', [])}
def _set_basic_info(self, id, name, user_id=None):
def _set_basic_info(self, id, name, user_id):
self.id = id
self.name = name
self.user_id = user_id
+7 -2
View File
@@ -53,7 +53,12 @@ class App(ChatMixin):
"""Emit an event to all listeners."""
for listener in self.event_listeners:
try:
listener(name, data)
result = listener(name, data)
# Kinda inspired by stream
if asyncio.iscoroutinefunction(listener):
asyncio.create_task(result)
except Exception as e:
print(f"Error in event listener: {name}, {data}")
@@ -232,7 +237,7 @@ class App(ChatMixin):
raise Exception(f"invalid agent kind: {agent.kind}")
control = agent_class(self, agent.data)
control._set_basic_info(agent_id, agent.name)
control._set_basic_info(agent_id, agent.name, agent.user_id)
return control
async def get_agent_config_fields(self, agent_id):
-1
View File
@@ -170,7 +170,6 @@ class ChatMixin:
def chunk_fn (chunk):
message.content = content.content + "..."
notify_users()
async def end_fn ():
message.content = content.content
if db.is_instance(message):
+1 -1
View File
@@ -141,7 +141,7 @@ async def start_server(app):
# Listen for events and broadcast them
async def on_event(name, data):
await send({"action": event, "name": name, "data": data})
await send({"action": "event", "name": name, "data": data})
app.on_event(on_event)
while True: