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>
This commit is contained in:
105
prometheus/tests/graph/test_file_graph_builder.py
Normal file
105
prometheus/tests/graph/test_file_graph_builder.py
Normal file
@@ -0,0 +1,105 @@
|
||||
from prometheus.graph.file_graph_builder import FileGraphBuilder
|
||||
from prometheus.graph.graph_types import (
|
||||
ASTNode,
|
||||
KnowledgeGraphEdgeType,
|
||||
KnowledgeGraphNode,
|
||||
TextNode,
|
||||
)
|
||||
from tests.test_utils import test_project_paths
|
||||
|
||||
|
||||
def test_supports_file():
|
||||
file_graph_builder = FileGraphBuilder(0, 0, 0)
|
||||
|
||||
assert file_graph_builder.supports_file(test_project_paths.C_FILE)
|
||||
assert file_graph_builder.supports_file(test_project_paths.JAVA_FILE)
|
||||
assert file_graph_builder.supports_file(test_project_paths.MD_FILE)
|
||||
assert file_graph_builder.supports_file(test_project_paths.PYTHON_FILE)
|
||||
|
||||
assert file_graph_builder.supports_file(test_project_paths.DUMMY_FILE) is False
|
||||
|
||||
|
||||
def test_build_python_file_graph():
|
||||
file_graph_builder = FileGraphBuilder(1000, 1000, 100)
|
||||
|
||||
parent_kg_node = KnowledgeGraphNode(0, None)
|
||||
next_node_id, kg_nodes, kg_edges = file_graph_builder.build_file_graph(
|
||||
parent_kg_node, test_project_paths.PYTHON_FILE, 0
|
||||
)
|
||||
|
||||
assert next_node_id == 11
|
||||
assert len(kg_nodes) == 11
|
||||
assert len(kg_edges) == 11
|
||||
|
||||
# Test if some of the nodes exists
|
||||
argument_list_ast_node = ASTNode(
|
||||
type="argument_list", start_line=1, end_line=1, text='("Hello world!")'
|
||||
)
|
||||
string_ast_node = ASTNode(type="string", start_line=1, end_line=1, text='"Hello world!"')
|
||||
|
||||
found_argument_list_ast_node = False
|
||||
for kg_node in kg_nodes:
|
||||
if kg_node.node == argument_list_ast_node:
|
||||
found_argument_list_ast_node = True
|
||||
assert found_argument_list_ast_node
|
||||
|
||||
found_string_ast_node = False
|
||||
for kg_node in kg_nodes:
|
||||
if kg_node.node == string_ast_node:
|
||||
found_string_ast_node = True
|
||||
assert found_string_ast_node
|
||||
|
||||
# Test if some of the edges exists
|
||||
found_edge = False
|
||||
for kg_edge in kg_edges:
|
||||
if (
|
||||
kg_edge.source.node == argument_list_ast_node
|
||||
and kg_edge.target.node == string_ast_node
|
||||
and kg_edge.type == KnowledgeGraphEdgeType.parent_of
|
||||
):
|
||||
found_edge = True
|
||||
assert found_edge
|
||||
|
||||
|
||||
def test_build_text_file_graph():
|
||||
file_graph_builder = FileGraphBuilder(1000, 100, 10)
|
||||
|
||||
parent_kg_node = KnowledgeGraphNode(0, None)
|
||||
next_node_id, kg_nodes, kg_edges = file_graph_builder.build_file_graph(
|
||||
parent_kg_node, test_project_paths.MD_FILE, 0
|
||||
)
|
||||
|
||||
assert next_node_id == 2
|
||||
assert len(kg_nodes) == 2
|
||||
assert len(kg_edges) == 3
|
||||
|
||||
# Test if some of the nodes exists
|
||||
text_node_1 = TextNode(
|
||||
text="# A\n\nText under header A.\n\n## B\n\nText under header B.\n\n## C\n\nText under header C.\n\n### D",
|
||||
start_line=1,
|
||||
end_line=13,
|
||||
)
|
||||
text_node_2 = TextNode(text="### D\n\nText under header D.", start_line=13, end_line=15)
|
||||
|
||||
found_text_node_1 = False
|
||||
for kg_node in kg_nodes:
|
||||
if kg_node.node == text_node_1:
|
||||
found_text_node_1 = True
|
||||
assert found_text_node_1
|
||||
|
||||
found_text_node_2 = False
|
||||
for kg_node in kg_nodes:
|
||||
if kg_node.node == text_node_2:
|
||||
found_text_node_2 = True
|
||||
assert found_text_node_2
|
||||
|
||||
# Test if some of the edges exists
|
||||
found_edge = False
|
||||
for kg_edge in kg_edges:
|
||||
if (
|
||||
kg_edge.source.node == text_node_1
|
||||
and kg_edge.target.node == text_node_2
|
||||
and kg_edge.type == KnowledgeGraphEdgeType.next_chunk
|
||||
):
|
||||
found_edge = True
|
||||
assert found_edge
|
||||
Reference in New Issue
Block a user