feat(voice): add Confluence read/write tools for voice sessions

Enable realtime Confluence page editing during Element Call voice sessions.
- Add read_confluence_page and update_confluence_page function tools
- Detect Confluence URLs shared in Matrix rooms, store page ID for voice context
- Section-level updates via heading match + version-incremented PUT

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Christian Gick
2026-02-23 13:09:34 +02:00
parent e81aa79396
commit b275e7cb88
2 changed files with 145 additions and 2 deletions

14
bot.py
View File

@@ -804,6 +804,20 @@ class Bot:
await self._send_text(room.room_id, menu)
return
# Detect Confluence page links → store page ID for voice session context
confluence_match = re.search(
r'agiliton\.atlassian\.net/wiki/.*?pages/(\d+)', body)
if confluence_match:
page_id = confluence_match.group(1)
docs = self._room_document_context.setdefault(room.room_id, [])
docs.append({
"type": "confluence",
"filename": f"Confluence page {page_id}",
"text": f"confluence_page_id:{page_id}",
"timestamp": time.time(),
})
logger.info("Confluence page %s detected in room %s", page_id, room.room_id)
await self.client.room_typing(room.room_id, typing_state=True)
try:
await self._respond_with_ai(room, body, sender=sender, image_data=image_data)