mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-06-29 01:09:57 +02:00
89d6bb8fb9
Auto-relay connect DMs with End Contact severing, signed fleet prekey lookup, OpenClaw private Infonet channel intents, headless relay Tor bootstrap on redeploy, and swarm/DM live verification scripts. Co-authored-by: Cursor <cursoragent@cursor.com>
82 lines
2.3 KiB
Python
82 lines
2.3 KiB
Python
"""OpenClaw Infonet delegation — command allowlist and dispatch."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from unittest.mock import patch
|
|
|
|
from services.openclaw_channel import (
|
|
READ_COMMANDS,
|
|
WRITE_COMMANDS,
|
|
_dispatch_command,
|
|
allowed_commands,
|
|
)
|
|
from services.openclaw_channel import CommandChannel
|
|
|
|
|
|
INFONET_READS = frozenset({
|
|
"infonet_status",
|
|
"list_gates",
|
|
"read_gate_messages",
|
|
"poll_dms",
|
|
})
|
|
|
|
INFONET_WRITES = frozenset({
|
|
"ensure_infonet_ready",
|
|
"join_infonet_swarm",
|
|
"post_gate_message",
|
|
"cast_vote",
|
|
"send_dm",
|
|
})
|
|
|
|
|
|
def test_infonet_commands_in_allowlists():
|
|
assert INFONET_READS <= READ_COMMANDS
|
|
assert INFONET_WRITES <= WRITE_COMMANDS
|
|
|
|
|
|
def test_restricted_tier_allows_infonet_reads_only():
|
|
allowed = allowed_commands("restricted")
|
|
assert INFONET_READS <= allowed
|
|
assert not (INFONET_WRITES & allowed)
|
|
|
|
|
|
def test_full_tier_allows_infonet_writes():
|
|
allowed = allowed_commands("full")
|
|
assert INFONET_WRITES <= allowed
|
|
|
|
|
|
def test_restricted_tier_blocks_post_gate_message():
|
|
channel = CommandChannel()
|
|
result = channel.submit_command("post_gate_message", {"gate_id": "infonet", "plaintext": "hi"})
|
|
assert result["ok"] is False
|
|
assert "full access tier" in str(result.get("detail", ""))
|
|
|
|
|
|
def test_dispatch_infonet_status_mocked():
|
|
fake = {"ok": True, "chain": {"length": 3}, "valid": True}
|
|
with patch("services.openclaw_infonet.get_infonet_status", return_value=fake):
|
|
result = _dispatch_command("infonet_status", {})
|
|
assert result == fake
|
|
|
|
|
|
def test_dispatch_list_gates_mocked():
|
|
fake = {"ok": True, "gates": [{"id": "infonet"}]}
|
|
with patch("services.openclaw_infonet.list_gates", return_value=fake):
|
|
result = _dispatch_command("list_gates", {})
|
|
assert result["gates"][0]["id"] == "infonet"
|
|
|
|
|
|
def test_dispatch_post_gate_message_mocked():
|
|
fake = {"ok": True, "event_id": "evt-test"}
|
|
with patch("services.openclaw_infonet.post_gate_message", return_value=fake):
|
|
result = _dispatch_command(
|
|
"post_gate_message",
|
|
{"gate_id": "infonet", "plaintext": "agent bulletin"},
|
|
)
|
|
assert result["event_id"] == "evt-test"
|
|
|
|
|
|
def test_cast_vote_rejects_invalid_vote():
|
|
result = _dispatch_command("cast_vote", {"target_id": "!sb_test", "vote": 2})
|
|
assert result["ok"] is False
|