feat(mma): Decouple UI from API calls using UserRequestEvent and AsyncEventQueue

This commit is contained in:
2026-02-26 20:45:23 -05:00
parent 5206c7c569
commit 68861c0744
5 changed files with 208 additions and 54 deletions

View File

@@ -63,3 +63,23 @@ class AsyncEventQueue:
A tuple containing (event_name, payload).
"""
return await self._queue.get()
class UserRequestEvent:
"""
Payload for a user request event.
"""
def __init__(self, prompt: str, stable_md: str, file_items: List[Any], disc_text: str, base_dir: str):
self.prompt = prompt
self.stable_md = stable_md
self.file_items = file_items
self.disc_text = disc_text
self.base_dir = base_dir
def to_dict(self) -> Dict[str, Any]:
return {
"prompt": self.prompt,
"stable_md": self.stable_md,
"file_items": self.file_items,
"disc_text": self.disc_text,
"base_dir": self.base_dir
}