feat: Add collaboration tool and UI

Integrates real-time document collaboration with a new tool and UI.

Co-authored-by: nicsins <nicsins@gmail.com>
This commit is contained in:
Cursor Agent 2025-12-20 20:56:50 +00:00
parent f3c41bca08
commit 8df4fc3b19
8 changed files with 225 additions and 0 deletions

View file

@ -0,0 +1,24 @@
from python.helpers.tool import Tool, Response
from python.collaboration import documents, socketio
class CollaborationTool(Tool):
async def execute(self, action, content="", doc_id="default", **kwargs):
if action == "read":
text = documents.get(doc_id, "")
return Response(message=f"Document content:\n{text}", break_loop=False)
elif action == "write":
# Overwrite
documents[doc_id] = content
socketio.emit('document_updated', {'content': content}, room=doc_id)
return Response(message="Document updated.", break_loop=False)
elif action == "append":
current = documents.get(doc_id, "")
new_content = current + "\n" + content
documents[doc_id] = new_content
socketio.emit('document_updated', {'content': new_content}, room=doc_id)
return Response(message="Appended to document.", break_loop=False)
else:
return Response(message="Unknown action. Use read, write, or append.", break_loop=False)