mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 03:57:13 -05:00
This commit introduces the QLM system - a stateful semantic layer for
tracking HI (Human Intelligence), AI (Agent Intelligence), and QI
(Quantum/Emergent Intelligence) in BlackRoad OS.
Core Features:
- HI/AI/QI intelligence layer modeling
- Event-driven state management
- QI emergence detection (agent self-correction, feedback loops, etc.)
- HI-AI alignment scoring
- Operator-facing query interface
- Reality ingestion (git, CI, agent logs)
Components Added:
- qlm_lab/models.py: Core data models (Actor, QLMEvent, QIEmergence, etc.)
- qlm_lab/state.py: State management and transition tracking
- qlm_lab/api.py: Public QLMInterface API
- qlm_lab/ingestion/: Git, CI, and agent log connectors
- qlm_lab/experiments/: Alignment and emergence validation
- qlm_lab/visualization.py: Timeline, actor graph, alignment plots
- qlm_lab/demo.py: Interactive demo script
- tests/test_qlm_core.py: Comprehensive test suite
- docs/QLM.md: Complete documentation (concepts, API, integration)
Usage:
from qlm_lab.api import QLMInterface
qlm = QLMInterface()
qlm.record_operator_intent("Build feature X")
qlm.record_agent_execution("agent-1", "Implement X", "task-1")
summary = qlm.get_summary(days=7)
Run:
python -m qlm_lab.demo
python -m qlm_lab.experiments.alignment_detection
pytest tests/test_qlm_core.py -v
Integrates with:
- cognitive/intent_graph.py (intent tracking)
- cognitive/agent_coordination.py (multi-agent coordination)
- operator_engine/scheduler.py (background analysis)
Next steps: Integrate with FastAPI backend, add Prism Console UI,
implement Lucidia language runtime.
269 lines
8.3 KiB
Python
269 lines
8.3 KiB
Python
"""
|
|
Tests for QLM core functionality
|
|
"""
|
|
|
|
import pytest
|
|
from datetime import datetime, timedelta
|
|
|
|
from qlm_lab.api import QLMInterface
|
|
from qlm_lab.models import (
|
|
Actor,
|
|
ActorType,
|
|
ActorRole,
|
|
ActorState,
|
|
IntelligenceType,
|
|
EventType,
|
|
QLMEvent,
|
|
)
|
|
|
|
|
|
class TestQLMCore:
|
|
"""Test core QLM functionality"""
|
|
|
|
def test_qlm_initialization(self):
|
|
"""Test QLM initializes correctly"""
|
|
qlm = QLMInterface()
|
|
|
|
assert qlm.state is not None
|
|
assert len(qlm.state.layers) == 3 # HI, AI, QI
|
|
assert len(qlm.state.events) == 0 # No events yet
|
|
assert qlm.operator.actor_type == ActorType.HUMAN
|
|
|
|
def test_register_agent(self):
|
|
"""Test agent registration"""
|
|
qlm = QLMInterface()
|
|
|
|
agent = qlm.register_agent(
|
|
agent_id="test-agent",
|
|
name="TestAgent",
|
|
role=ActorRole.EXECUTOR,
|
|
capabilities=["testing", "debugging"],
|
|
)
|
|
|
|
assert agent.id == "test-agent"
|
|
assert agent.name == "TestAgent"
|
|
assert agent.role == ActorRole.EXECUTOR
|
|
assert "testing" in agent.capabilities
|
|
assert "debugging" in agent.capabilities
|
|
|
|
def test_record_operator_intent(self):
|
|
"""Test recording Operator intent"""
|
|
qlm = QLMInterface()
|
|
|
|
event = qlm.record_operator_intent(
|
|
intent="Test intent", description="Test description"
|
|
)
|
|
|
|
assert event.source_layer == IntelligenceType.HI
|
|
assert event.event_type == EventType.OPERATOR_INTENT
|
|
assert event.data["intent"] == "Test intent"
|
|
assert len(qlm.state.events) == 1
|
|
|
|
def test_record_agent_execution(self):
|
|
"""Test recording agent execution"""
|
|
qlm = QLMInterface()
|
|
qlm.register_agent("agent-1", "Agent1", ActorRole.EXECUTOR)
|
|
|
|
event = qlm.record_agent_execution(
|
|
agent_id="agent-1",
|
|
task_description="Test task",
|
|
task_id="task-1",
|
|
)
|
|
|
|
assert event.source_layer == IntelligenceType.AI
|
|
assert event.event_type == EventType.AGENT_EXECUTION
|
|
assert event.actor_id == "agent-1"
|
|
assert event.task_id == "task-1"
|
|
|
|
def test_record_agent_completion(self):
|
|
"""Test recording agent completion"""
|
|
qlm = QLMInterface()
|
|
qlm.register_agent("agent-1", "Agent1", ActorRole.EXECUTOR)
|
|
|
|
event = qlm.record_agent_completion(
|
|
agent_id="agent-1",
|
|
task_id="task-1",
|
|
success=True,
|
|
result={"status": "done"},
|
|
)
|
|
|
|
assert event.event_type == EventType.AGENT_COMPLETION
|
|
assert event.data["success"] is True
|
|
assert event.data["result"]["status"] == "done"
|
|
|
|
def test_alignment_calculation(self):
|
|
"""Test HI-AI alignment calculation"""
|
|
qlm = QLMInterface()
|
|
qlm.register_agent("agent-1", "Agent1", ActorRole.EXECUTOR)
|
|
|
|
# Create intent
|
|
qlm.record_operator_intent("Test intent", intent_node_id="intent-1")
|
|
|
|
# Agent executes
|
|
qlm.record_agent_execution(
|
|
"agent-1", "Do task", "task-1", intent_node_id="intent-1"
|
|
)
|
|
qlm.record_agent_completion("agent-1", "task-1", True)
|
|
|
|
# Operator approves
|
|
qlm.record_operator_approval(
|
|
"Good work", intent_node_id="intent-1", task_id="task-1"
|
|
)
|
|
|
|
alignment = qlm.get_alignment_score()
|
|
assert alignment == 1.0 # Perfect alignment
|
|
|
|
def test_qi_emergence_detection(self):
|
|
"""Test QI emergence detection"""
|
|
qlm = QLMInterface()
|
|
qlm.register_agent("agent-1", "Agent1", ActorRole.EXECUTOR)
|
|
|
|
# Simulate self-correction pattern
|
|
qlm.record_agent_execution("agent-1", "Task", "task-1")
|
|
qlm.record_agent_error("agent-1", "task-1", "Error occurred")
|
|
qlm.record_agent_execution("agent-1", "Task retry", "task-1")
|
|
qlm.record_agent_completion("agent-1", "task-1", True)
|
|
|
|
# Check for emergence
|
|
emergences = qlm.get_recent_emergences()
|
|
|
|
# Emergence detection may or may not trigger depending on pattern matching
|
|
# This test mainly ensures the system doesn't crash
|
|
assert isinstance(emergences, list)
|
|
|
|
def test_query_events_by_type(self):
|
|
"""Test querying events by type"""
|
|
qlm = QLMInterface()
|
|
|
|
# Record various events
|
|
qlm.record_operator_intent("Intent 1")
|
|
qlm.record_operator_intent("Intent 2")
|
|
|
|
qlm.register_agent("agent-1", "Agent1", ActorRole.EXECUTOR)
|
|
qlm.record_agent_execution("agent-1", "Task", "task-1")
|
|
|
|
# Query
|
|
intent_events = qlm.get_events_by_type(EventType.OPERATOR_INTENT)
|
|
assert len(intent_events) == 2
|
|
|
|
exec_events = qlm.get_events_by_type(EventType.AGENT_EXECUTION)
|
|
assert len(exec_events) == 1
|
|
|
|
def test_query_events_in_timerange(self):
|
|
"""Test querying events in time range"""
|
|
qlm = QLMInterface()
|
|
|
|
now = datetime.now()
|
|
yesterday = now - timedelta(days=1)
|
|
|
|
qlm.record_operator_intent("Recent intent")
|
|
|
|
events = qlm.get_events_in_timerange(yesterday, now)
|
|
assert len(events) >= 1
|
|
|
|
def test_operator_ask_interface(self):
|
|
"""Test natural language query interface"""
|
|
qlm = QLMInterface()
|
|
qlm.register_agent("agent-1", "Agent1", ActorRole.EXECUTOR)
|
|
|
|
qlm.record_operator_intent("Test")
|
|
qlm.record_agent_execution("agent-1", "Task", "task-1")
|
|
qlm.record_agent_completion("agent-1", "task-1", True)
|
|
qlm.record_operator_approval("Good", task_id="task-1")
|
|
|
|
# Test queries
|
|
response = qlm.ask("What's the status?")
|
|
assert "QLM State Summary" in response
|
|
|
|
response = qlm.ask("Are we aligned with my intent?")
|
|
assert "Alignment" in response
|
|
|
|
def test_export_import_state(self, tmp_path):
|
|
"""Test state export and import"""
|
|
qlm = QLMInterface()
|
|
|
|
# Create some state
|
|
qlm.register_agent("agent-1", "Agent1", ActorRole.EXECUTOR)
|
|
qlm.record_operator_intent("Test intent")
|
|
qlm.record_agent_execution("agent-1", "Task", "task-1")
|
|
|
|
# Export
|
|
export_path = tmp_path / "qlm_state.json"
|
|
qlm.export_state(str(export_path))
|
|
|
|
assert export_path.exists()
|
|
|
|
# Check content
|
|
import json
|
|
|
|
with open(export_path, "r") as f:
|
|
data = json.load(f)
|
|
|
|
assert "layers" in data
|
|
assert "events" in data
|
|
assert "metrics" in data
|
|
|
|
def test_metrics_tracking(self):
|
|
"""Test metrics are tracked correctly"""
|
|
qlm = QLMInterface()
|
|
qlm.register_agent("agent-1", "Agent1", ActorRole.EXECUTOR)
|
|
|
|
# Record events
|
|
qlm.record_operator_intent("Intent")
|
|
qlm.record_agent_execution("agent-1", "Task", "task-1")
|
|
qlm.record_operator_approval("Good", task_id="task-1")
|
|
|
|
metrics = qlm.state.metrics
|
|
|
|
assert metrics.hi_events >= 2 # Intent + approval
|
|
assert metrics.ai_events >= 1 # Execution
|
|
assert metrics.operator_approvals == 1
|
|
|
|
|
|
class TestQLMModels:
|
|
"""Test QLM data models"""
|
|
|
|
def test_actor_creation(self):
|
|
"""Test Actor model"""
|
|
actor = Actor(
|
|
id="test-actor",
|
|
name="TestActor",
|
|
actor_type=ActorType.AGENT,
|
|
role=ActorRole.EXECUTOR,
|
|
state=ActorState.ACTIVE,
|
|
)
|
|
|
|
assert actor.id == "test-actor"
|
|
assert actor.actor_type == ActorType.AGENT
|
|
assert actor.role == ActorRole.EXECUTOR
|
|
assert actor.state == ActorState.ACTIVE
|
|
|
|
# Test serialization
|
|
data = actor.to_dict()
|
|
assert data["id"] == "test-actor"
|
|
assert data["actor_type"] == "agent"
|
|
|
|
def test_event_creation(self):
|
|
"""Test QLMEvent model"""
|
|
event = QLMEvent(
|
|
source_layer=IntelligenceType.AI,
|
|
actor_id="agent-1",
|
|
event_type=EventType.AGENT_EXECUTION,
|
|
task_id="task-1",
|
|
data={"test": "data"},
|
|
)
|
|
|
|
assert event.source_layer == IntelligenceType.AI
|
|
assert event.event_type == EventType.AGENT_EXECUTION
|
|
assert event.task_id == "task-1"
|
|
assert event.data["test"] == "data"
|
|
|
|
# Test serialization
|
|
data = event.to_dict()
|
|
assert data["source_layer"] == "model_intelligence"
|
|
assert data["event_type"] == "agent_execution"
|
|
|
|
|
|
if __name__ == "__main__":
|
|
pytest.main([__file__, "-v"])
|