feat(driver): Driver interface for v0.1 RPC surface

Mirrors proto/driverpb/driver.proto: Launch, Terminate, Tap,
InputText, Hierarchy, Screenshot, WaitForIdle, Health. Keeps
Image/Health as dedicated structs so callers don't depend on
generated proto types.
This commit is contained in:
pj committed 2026-04-17 23:40:28 +07:00
1 parent 123cbf06e7
commit d533aef04b
1 file changed
+35
+35
View File
@@ -0,0 +1,35 @@
package driver
import (
"context"
"time"
)
// Driver abstracts the platform-specific UI automation backend. v0.1 surface
// matches proto/driverpb/driver.proto. The Maestro sidecar implementation
// lives under driver/maestro; tests use driver/mock.
type Driver interface {
Launch(ctx context.Context, bundleID string, clearState bool) error
Terminate(ctx context.Context) error
Tap(ctx context.Context, x, y int) error
InputText(ctx context.Context, text string) error
Hierarchy(ctx context.Context) (string, error)
Screenshot(ctx context.Context) (Image, error)
WaitForIdle(ctx context.Context, duration time.Duration) error
Health(ctx context.Context) (Health, error)
}
type Image struct {
PNG []byte
Width int
Height int
}
type Health struct {
Ready bool
Version string
Platform string
}