Files
SuperCharged-Claude-Code-Up…/prometheus/tests/utils/test_lang_graph_util.py
admin b52318eeae feat: Add intelligent auto-router and enhanced integrations
- Add intelligent-router.sh hook for automatic agent routing
- Add AUTO-TRIGGER-SUMMARY.md documentation
- Add FINAL-INTEGRATION-SUMMARY.md documentation
- Complete Prometheus integration (6 commands + 4 tools)
- Complete Dexto integration (12 commands + 5 tools)
- Enhanced Ralph with access to all agents
- Fix /clawd command (removed disable-model-invocation)
- Update hooks.json to v5 with intelligent routing
- 291 total skills now available
- All 21 commands with automatic routing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-28 00:27:56 +04:00

109 lines
3.1 KiB
Python

from langchain_core.messages import (
AIMessage,
HumanMessage,
SystemMessage,
ToolMessage,
)
from prometheus.utils.lang_graph_util import (
check_remaining_steps,
extract_ai_responses,
extract_human_queries,
extract_last_tool_messages,
format_agent_tool_message_history,
get_last_message_content,
)
# Test check_remaining_steps
def test_check_remaining_steps():
def mock_router(state):
return "next_step"
state_enough_steps = {"remaining_steps": 5}
state_low_steps = {"remaining_steps": 2}
assert check_remaining_steps(state_enough_steps, mock_router, 3) == "next_step"
assert check_remaining_steps(state_low_steps, mock_router, 3) == "low_remaining_steps"
# Test extract_ai_responses
def test_extract_ai_responses():
messages = [
HumanMessage(content="Human 1"),
AIMessage(content="AI 1"),
HumanMessage(content="Human 2"),
AIMessage(content="AI 2"),
]
responses = extract_ai_responses(messages)
assert len(responses) == 2
assert "AI 1" in responses
assert "AI 2" in responses
# Test extract_human_queries
def test_extract_human_queries():
messages = [
SystemMessage(content="System"),
HumanMessage(content="Human 1"),
AIMessage(content="AI 1"),
HumanMessage(content="Human 2"),
]
queries = extract_human_queries(messages)
assert len(queries) == 2
assert "Human 1" in queries
assert "Human 2" in queries
# Test extract_last_tool_messages
def test_extract_last_tool_messages():
messages = [
HumanMessage(content="Human 1"),
ToolMessage(content="Tool 1", tool_call_id="call_1"),
AIMessage(content="AI 1"),
HumanMessage(content="Human 2"),
ToolMessage(content="Tool 2", tool_call_id="call_2"),
ToolMessage(content="Tool 3", tool_call_id="call_3"),
]
tool_messages = extract_last_tool_messages(messages)
assert len(tool_messages) == 2
assert all(isinstance(msg, ToolMessage) for msg in tool_messages)
assert tool_messages[-1].content == "Tool 3"
# Test get_last_message_content
def test_get_last_message_content():
messages = [
HumanMessage(content="Human"),
AIMessage(content="AI"),
ToolMessage(content="Last message", tool_call_id="call_1"),
]
content = get_last_message_content(messages)
assert content == "Last message"
def test_format_agent_tool_message_history():
messages = [
AIMessage(content="Let me analyze this"),
AIMessage(
content="I'll use a tool for this",
additional_kwargs={"tool_calls": [{"function": "analyze_data"}]},
),
ToolMessage(content="Analysis results: Success", tool_call_id="call_1"),
]
result = format_agent_tool_message_history(messages)
expected = (
"Assistant internal thought: Let me analyze this\n\n"
"Assistant internal thought: I'll use a tool for this\n\n"
"Assistant executed tool: analyze_data\n\n"
"Tool output: Analysis results: Success"
)
assert result == expected