feat: Add presence heartbeat for Matrix online status
- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
This commit is contained in:
75
services/memory-orchestrator/backends/kb_filesystem.py
Normal file
75
services/memory-orchestrator/backends/kb_filesystem.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import os
|
||||
import json
|
||||
from typing import Optional
|
||||
from models import MemoryItem
|
||||
from datetime import datetime
|
||||
|
||||
class KnowledgeBaseBackend:
|
||||
"""
|
||||
Long-term knowledge base (filesystem)
|
||||
|
||||
Phase 3: Stub implementation
|
||||
Stores docs, roadmaps, and structured knowledge
|
||||
"""
|
||||
|
||||
def __init__(self, kb_path: str = "/data/kb"):
|
||||
self.kb_path = kb_path
|
||||
|
||||
async def initialize(self):
|
||||
"""Create KB directory"""
|
||||
if not os.path.exists(self.kb_path):
|
||||
try:
|
||||
os.makedirs(self.kb_path, exist_ok=True)
|
||||
print(f"✅ KB directory created: {self.kb_path}")
|
||||
except Exception as e:
|
||||
print(f"⚠️ Failed to create KB directory: {e}")
|
||||
print(" Using in-memory stub")
|
||||
|
||||
async def query(
|
||||
self,
|
||||
agent_id: str,
|
||||
query_text: str,
|
||||
limit: int = 5
|
||||
) -> list[MemoryItem]:
|
||||
"""
|
||||
Query knowledge base
|
||||
|
||||
Phase 3: Returns stub/empty results
|
||||
Phase 4: Implement proper KB indexing and search
|
||||
"""
|
||||
# Stub implementation for Phase 3
|
||||
print(f"ℹ️ KB query (stub): {query_text[:50]}...")
|
||||
|
||||
# Return empty results for now
|
||||
# In Phase 4, this would:
|
||||
# 1. Index docs/roadmaps with embeddings
|
||||
# 2. Perform semantic search
|
||||
# 3. Return relevant knowledge chunks
|
||||
|
||||
return []
|
||||
|
||||
async def store(
|
||||
self,
|
||||
agent_id: str,
|
||||
microdao_id: str,
|
||||
kind: str,
|
||||
content: dict,
|
||||
metadata: Optional[dict] = None
|
||||
) -> str:
|
||||
"""
|
||||
Store knowledge base entry
|
||||
|
||||
Phase 3: Stub implementation
|
||||
"""
|
||||
# Stub for Phase 3
|
||||
entry_id = f"kb-{datetime.now().timestamp()}"
|
||||
print(f"ℹ️ KB store (stub): {entry_id}")
|
||||
|
||||
# In Phase 4, would write to filesystem or DB
|
||||
# with proper indexing
|
||||
|
||||
return entry_id
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user