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:
2026-06-10 14:27:46 +08:00
parent d533d0a30e
commit 3299468df6
26 changed files with 843 additions and 814 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1160,7 +1160,7 @@ class NetworkStub:
self.OpenConn = channel.unary_stream(
'/agentsd.Network/OpenConn',
request_serializer=agentsd__pb2.ConnectRequest.SerializeToString,
response_deserializer=agentsd__pb2.DataChunk.FromString,
response_deserializer=agentsd__pb2.ConnEvent.FromString,
_registered_method=True)
self.Listen = channel.unary_stream(
'/agentsd.Network/Listen',
@@ -1235,7 +1235,7 @@ def add_NetworkServicer_to_server(servicer, server):
'OpenConn': grpc.unary_stream_rpc_method_handler(
servicer.OpenConn,
request_deserializer=agentsd__pb2.ConnectRequest.FromString,
response_serializer=agentsd__pb2.DataChunk.SerializeToString,
response_serializer=agentsd__pb2.ConnEvent.SerializeToString,
),
'Listen': grpc.unary_stream_rpc_method_handler(
servicer.Listen,
@@ -1312,7 +1312,7 @@ class Network:
target,
'/agentsd.Network/OpenConn',
agentsd__pb2.ConnectRequest.SerializeToString,
agentsd__pb2.DataChunk.FromString,
agentsd__pb2.ConnEvent.FromString,
options,
channel_credentials,
insecure,