mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-30 10:52:15 +00:00
Major changes across parallel sessions: - Add orchestrator SFT & GRPO training subpackage (learning/orchestrator/) with episode types, multi-objective reward, prompt registry, policy model, RL environment, and registered learning policies - Add structured THOUGHT/TOOL/INPUT/FINAL_ANSWER mode to OrchestratorAgent - Add 15 channel backends (Discord, Slack, Telegram, Email, Webhook, IRC, Matrix, Teams, WhatsApp, Signal, Mattermost, BlueBubbles, Feishu, Google Chat, Webchat) with channel tools and config - Add LiteLLM engine backend for unified LLM provider access - Add RLM agent and REPL tool - Remove ToolLearningPolicy — learning taxonomy now only targets Intelligence (LM weights/routing) and Agents (logic/ICL/tool strategies) - Rename SFTPolicy to SFTRouterPolicy (backward-compat alias kept) - Remove OpenClaw agent infrastructure (openclaw*.py, openclaw_bridge.py) - Fix async streaming tests (asyncio.run vs deprecated get_event_loop) - Fix server channel route tests (pytest.importorskip for optional fastapi) - Track uv.lock for reproducibility - Update CLAUDE.md and docs to reflect all changes 1676 tests pass, 37 skipped. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
36 lines
976 B
Python
36 lines
976 B
Python
"""Tests for the learning policy ABC taxonomy."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from openjarvis.learning._stubs import (
|
|
AgentLearningPolicy,
|
|
IntelligenceLearningPolicy,
|
|
LearningPolicy,
|
|
)
|
|
|
|
|
|
class TestLearningPolicyABC:
|
|
def test_cannot_instantiate_base(self):
|
|
with pytest.raises(TypeError):
|
|
LearningPolicy()
|
|
|
|
def test_cannot_instantiate_intelligence(self):
|
|
with pytest.raises(TypeError):
|
|
IntelligenceLearningPolicy()
|
|
|
|
def test_cannot_instantiate_agent(self):
|
|
with pytest.raises(TypeError):
|
|
AgentLearningPolicy()
|
|
|
|
def test_target_intelligence(self):
|
|
assert IntelligenceLearningPolicy.target == "intelligence"
|
|
|
|
def test_target_agent(self):
|
|
assert AgentLearningPolicy.target == "agent"
|
|
|
|
def test_hierarchy(self):
|
|
assert issubclass(IntelligenceLearningPolicy, LearningPolicy)
|
|
assert issubclass(AgentLearningPolicy, LearningPolicy)
|