feat(beads): integrate Beads Mode backend, MCP tools, and GUI support

This commit is contained in:
2026-05-06 13:48:47 -04:00
parent b1ddaa50f4
commit 2b66f3569b
17 changed files with 525 additions and 77 deletions
+45
View File
@@ -0,0 +1,45 @@
import pytest
import tempfile
from pathlib import Path
from src import mcp_client
from src import beads_client
def test_bd_mcp_tools(tmp_path: Path):
# Setup mock workspace
workspace_dir = tmp_path / "workspace"
workspace_dir.mkdir()
# Configure mcp client allowlist
mcp_client.configure([{"path": str(workspace_dir)}], extra_base_dirs=[str(workspace_dir)])
# Initialize Beads repo manually to simulate state
bclient = beads_client.BeadsClient(workspace_dir)
bclient.init_repo()
# Tools should be registered
tools = mcp_client.get_tool_schemas()
tool_names = [t["name"] for t in tools]
assert "bd_create" in tool_names
assert "bd_update" in tool_names
assert "bd_list" in tool_names
# Test bd_create
resp = mcp_client.dispatch("bd_create", {"title": "First Bead", "description": "This is a test bead"})
assert "bead-1" in resp
# Test bd_list
list_resp = mcp_client.dispatch("bd_list", {})
assert "bead-1" in list_resp
assert "First Bead" in list_resp
# Test bd_ready
ready_resp = mcp_client.dispatch("bd_ready", {})
assert ready_resp == "READY"
# Test bd_update
update_resp = mcp_client.dispatch("bd_update", {"bead_id": "bead-1", "status": "completed"})
assert "bead-1" in update_resp
# Test bd_list after update
list_resp2 = mcp_client.dispatch("bd_list", {})
assert "Status: completed" in list_resp2