Migrate test plugins to Rust and async-ify syscall modules
- Replace Python test plugins (echo, ai_test, claudecode) with Rust implementations driven by the plugin SDK - Convert fs/network/process/timer syscall modules to async/await - Change Network.OpenConn to return stream ConnEvent (conn_id handed to client in first "open" frame for Send/Close routing) - Bind timer callbacks to plugin identity; stream_call subscriptions are identity-checked - Update docs and regenerate Python SDK protobuf stubs Verified: cargo build/test/clippy clean; echo + ai_test full syscall suites pass; hermes & claudecode register and heartbeat; cross-plugin bridge.call routing and auth denial verified end-to-end. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -45,8 +45,10 @@ logger = logging.getLogger(__name__)
|
||||
class HermesPlugin:
|
||||
"""Bridges Hermes tools into agentsd."""
|
||||
|
||||
def __init__(self, agentsd_addr: str = "localhost:50051"):
|
||||
self.addr = agentsd_addr
|
||||
def __init__(self, agentsd_addr: str = None):
|
||||
# agentsd binds [::1]:50051 (IPv6 loopback); match it so "localhost"
|
||||
# resolving to IPv4 first doesn't break the connection. AGENTSD_ADDR overrides.
|
||||
self.addr = agentsd_addr or os.environ.get("AGENTSD_ADDR", "[::1]:50051")
|
||||
self.channel = None
|
||||
self.bridge = None
|
||||
self.registry = None
|
||||
|
||||
Reference in New Issue
Block a user