main
py 24 lines 986 Bytes
Raw
1 from helpers.api import ApiHandler, Request, Response
2 from helpers import message_queue as mq
3 from agent import AgentContext
4 from helpers.state_monitor_integration import mark_dirty_for_context
5
6
7 class MessageQueueAdd(ApiHandler):
8 """Add a message to the queue."""
9
10 async def process(self, input: dict, request: Request) -> dict | Response:
11 context = AgentContext.get(input.get("context", ""))
12 if not context:
13 return Response("Context not found", status=404)
14
15 text = input.get("text", "").strip()
16 attachments = input.get("attachments", []) # filenames from /upload API
17 item_id = input.get("item_id")
18
19 if not text and not attachments:
20 return Response("Empty message", status=400)
21
22 item = mq.add(context, text, attachments, item_id)
23 mark_dirty_for_context(context.id, reason="message_queue_add")
24 return {"ok": True, "item_id": item["id"], "queue_length": len(mq.get_queue(context))}