- Add migration 013_city_map_coordinates.sql with map coordinates, zones, and agents table - Add /city/map API endpoint in city-service - Add /city/agents and /city/agents/online endpoints - Extend presence aggregator to include agents[] in snapshot - Add AgentsSource for fetching agent data from DB - Create CityMap component with interactive room tiles - Add useCityMap hook for fetching map data - Update useGlobalPresence to include agents - Add map/list view toggle on /city page - Add agent badges to room cards and map tiles
77 lines
1.9 KiB
Python
77 lines
1.9 KiB
Python
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
|
||
|
||
|
||
|
||
|
||
|