From 9d62ba963d4d362bc1bc8c37c4c487e408a3fbaf Mon Sep 17 00:00:00 2001 From: PJ Date: Fri, 17 Apr 2026 22:27:27 +0700 Subject: [PATCH] feat(proto): define driver v0.1 service contract Eight RPCs needed for v0.1 per plan: Launch, Terminate, Tap, InputText, Screenshot, Hierarchy, WaitForIdle, Health. Defers Swipe/LongPress/OpenLink/etc until a spec needs them. --- proto/driverpb/driver.proto | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 proto/driverpb/driver.proto diff --git a/proto/driverpb/driver.proto b/proto/driverpb/driver.proto new file mode 100644 index 0000000..3d2626d --- /dev/null +++ b/proto/driverpb/driver.proto @@ -0,0 +1,57 @@ +syntax = "proto3"; + +package uatu.driver.v1; + +option go_package = "github.com/priyanshujain/uatu/proto/driverpb;driverpb"; +option java_package = "dev.uatu.driver.v1"; +option java_multiple_files = true; + +service Driver { + rpc Launch(LaunchRequest) returns (Empty); + rpc Terminate(Empty) returns (Empty); + + rpc Tap(Point) returns (Empty); + rpc InputText(Text) returns (Empty); + + rpc Screenshot(Empty) returns (Image); + rpc Hierarchy(Empty) returns (HierarchyJSON); + + rpc WaitForIdle(Duration) returns (Empty); + rpc Health(Empty) returns (HealthStatus); +} + +message Empty {} + +message LaunchRequest { + string bundle_id = 1; + bool clear_state = 2; +} + +message Point { + int32 x = 1; + int32 y = 2; +} + +message Text { + string value = 1; +} + +message Image { + bytes png = 1; + int32 width = 2; + int32 height = 3; +} + +message HierarchyJSON { + string json = 1; +} + +message Duration { + int64 millis = 1; +} + +message HealthStatus { + bool ready = 1; + string version = 2; + string platform = 3; +}