fix: restore and simplify events
This commit is contained in:
1 parent
77addb889d
commit
d7e92f38f3
4 files changed
+9
-5
No files matched your search
@@ -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
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in new issue
Block a user