@devicerail/protocol 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +33 -0
  3. package/dist/generated/v1/action-call.d.ts +10 -0
  4. package/dist/generated/v1/action-definition.d.ts +12 -0
  5. package/dist/generated/v1/action-execution.d.ts +27 -0
  6. package/dist/generated/v1/action-outcome.d.ts +103 -0
  7. package/dist/generated/v1/action-protection.d.ts +5 -0
  8. package/dist/generated/v1/action-result.d.ts +77 -0
  9. package/dist/generated/v1/asset-ref.d.ts +11 -0
  10. package/dist/generated/v1/clear-element-arguments.d.ts +59 -0
  11. package/dist/generated/v1/clear-element-result.d.ts +26 -0
  12. package/dist/generated/v1/coordinate-fallback-reason.d.ts +5 -0
  13. package/dist/generated/v1/device-capabilities-request.d.ts +21 -0
  14. package/dist/generated/v1/device-capabilities-response.d.ts +37 -0
  15. package/dist/generated/v1/device-capabilities-result.d.ts +13 -0
  16. package/dist/generated/v1/device-connect-request.d.ts +21 -0
  17. package/dist/generated/v1/device-connect-response.d.ts +69 -0
  18. package/dist/generated/v1/device-connect-result.d.ts +44 -0
  19. package/dist/generated/v1/device-disconnect-request.d.ts +21 -0
  20. package/dist/generated/v1/device-disconnect-response.d.ts +35 -0
  21. package/dist/generated/v1/device-disconnect-result.d.ts +10 -0
  22. package/dist/generated/v1/device-execute-params.d.ts +23 -0
  23. package/dist/generated/v1/device-execute-request.d.ts +33 -0
  24. package/dist/generated/v1/device-execute-response.d.ts +102 -0
  25. package/dist/generated/v1/device-execute-result.d.ts +77 -0
  26. package/dist/generated/v1/device-id.d.ts +5 -0
  27. package/dist/generated/v1/device-info.d.ts +44 -0
  28. package/dist/generated/v1/device-observe-request.d.ts +21 -0
  29. package/dist/generated/v1/device-observe-response.d.ts +79 -0
  30. package/dist/generated/v1/device-observe-result.d.ts +54 -0
  31. package/dist/generated/v1/device-select-params.d.ts +10 -0
  32. package/dist/generated/v1/device-select-request.d.ts +19 -0
  33. package/dist/generated/v1/device-select-response.d.ts +75 -0
  34. package/dist/generated/v1/device-select-result.d.ts +50 -0
  35. package/dist/generated/v1/devices-list-request.d.ts +15 -0
  36. package/dist/generated/v1/devices-list-response.d.ts +76 -0
  37. package/dist/generated/v1/devices-list-result.d.ts +51 -0
  38. package/dist/generated/v1/element-selector.d.ts +31 -0
  39. package/dist/generated/v1/element-target.d.ts +56 -0
  40. package/dist/generated/v1/error-info.d.ts +10 -0
  41. package/dist/generated/v1/event-id.d.ts +5 -0
  42. package/dist/generated/v1/event-sequence.d.ts +11 -0
  43. package/dist/generated/v1/event-stream-cursor.d.ts +24 -0
  44. package/dist/generated/v1/event-stream-endpoint.d.ts +8 -0
  45. package/dist/generated/v1/event-stream-epoch.d.ts +9 -0
  46. package/dist/generated/v1/event-stream-origin-policy.d.ts +13 -0
  47. package/dist/generated/v1/event-subscription-id.d.ts +5 -0
  48. package/dist/generated/v1/events-clear-request.d.ts +19 -0
  49. package/dist/generated/v1/events-clear-response.d.ts +36 -0
  50. package/dist/generated/v1/events-clear-result.d.ts +11 -0
  51. package/dist/generated/v1/events-list-params.d.ts +19 -0
  52. package/dist/generated/v1/events-list-request.d.ts +28 -0
  53. package/dist/generated/v1/events-list-response.d.ts +209 -0
  54. package/dist/generated/v1/events-list-result.d.ts +192 -0
  55. package/dist/generated/v1/events-stream-event-notification.d.ts +216 -0
  56. package/dist/generated/v1/events-stream-event-params.d.ts +209 -0
  57. package/dist/generated/v1/events-stream-open-params.d.ts +17 -0
  58. package/dist/generated/v1/events-stream-open-request.d.ts +26 -0
  59. package/dist/generated/v1/events-stream-open-response.d.ts +43 -0
  60. package/dist/generated/v1/events-stream-open-result.d.ts +18 -0
  61. package/dist/generated/v1/events-stream-terminal-notification.d.ts +70 -0
  62. package/dist/generated/v1/events-stream-terminal-params.d.ts +63 -0
  63. package/dist/generated/v1/events-stream-termination.d.ts +37 -0
  64. package/dist/generated/v1/events-subscribe-params.d.ts +28 -0
  65. package/dist/generated/v1/events-subscribe-request.d.ts +37 -0
  66. package/dist/generated/v1/events-subscribe-response.d.ts +56 -0
  67. package/dist/generated/v1/events-subscribe-result.d.ts +31 -0
  68. package/dist/generated/v1/feature-offer.d.ts +8 -0
  69. package/dist/generated/v1/feature-selection.d.ts +7 -0
  70. package/dist/generated/v1/find-element-arguments.d.ts +34 -0
  71. package/dist/generated/v1/find-element-result.d.ts +26 -0
  72. package/dist/generated/v1/hello-params.d.ts +35 -0
  73. package/dist/generated/v1/hello-result.d.ts +29 -0
  74. package/dist/generated/v1/index.d.ts +179 -0
  75. package/dist/generated/v1/json-rpc-version.d.ts +5 -0
  76. package/dist/generated/v1/manual-action-arguments.d.ts +11 -0
  77. package/dist/generated/v1/manual-action-step.d.ts +25 -0
  78. package/dist/generated/v1/manual-recording.d.ts +43 -0
  79. package/dist/generated/v1/media-frame.d.ts +25 -0
  80. package/dist/generated/v1/media-stream-capture-params.d.ts +16 -0
  81. package/dist/generated/v1/media-stream-capture-request.d.ts +31 -0
  82. package/dist/generated/v1/media-stream-capture-response.d.ts +56 -0
  83. package/dist/generated/v1/media-stream-capture-result.d.ts +31 -0
  84. package/dist/generated/v1/media-stream-end-params.d.ts +10 -0
  85. package/dist/generated/v1/media-stream-end-request.d.ts +19 -0
  86. package/dist/generated/v1/media-stream-end-response.d.ts +36 -0
  87. package/dist/generated/v1/media-stream-end-result.d.ts +11 -0
  88. package/dist/generated/v1/media-stream-id.d.ts +5 -0
  89. package/dist/generated/v1/media-stream-info.d.ts +17 -0
  90. package/dist/generated/v1/media-stream-kind.d.ts +5 -0
  91. package/dist/generated/v1/media-stream-start-params.d.ts +17 -0
  92. package/dist/generated/v1/media-stream-start-request.d.ts +26 -0
  93. package/dist/generated/v1/media-stream-start-response.d.ts +48 -0
  94. package/dist/generated/v1/media-stream-start-result.d.ts +23 -0
  95. package/dist/generated/v1/method-map.d.ts +162 -0
  96. package/dist/generated/v1/observation.d.ts +54 -0
  97. package/dist/generated/v1/peer-info.d.ts +8 -0
  98. package/dist/generated/v1/platform.d.ts +36 -0
  99. package/dist/generated/v1/protocol-incompatibility-reason.d.ts +5 -0
  100. package/dist/generated/v1/protocol-offer.d.ts +22 -0
  101. package/dist/generated/v1/protocol-range.d.ts +12 -0
  102. package/dist/generated/v1/protocol-selection.d.ts +11 -0
  103. package/dist/generated/v1/protocol-version.d.ts +8 -0
  104. package/dist/generated/v1/recorded-action-call.d.ts +18 -0
  105. package/dist/generated/v1/request-cancel-params.d.ts +8 -0
  106. package/dist/generated/v1/request-cancel-request.d.ts +16 -0
  107. package/dist/generated/v1/request-cancel-response.d.ts +34 -0
  108. package/dist/generated/v1/request-cancel-result.d.ts +10 -0
  109. package/dist/generated/v1/request-cancel-status.d.ts +5 -0
  110. package/dist/generated/v1/request-timeout-ms.d.ts +9 -0
  111. package/dist/generated/v1/rpc-error.d.ts +15 -0
  112. package/dist/generated/v1/rpc-id.d.ts +5 -0
  113. package/dist/generated/v1/rpc-params.d.ts +7 -0
  114. package/dist/generated/v1/rpc-request.d.ts +21 -0
  115. package/dist/generated/v1/rpc-response.d.ts +29 -0
  116. package/dist/generated/v1/rpc-server-message.d.ts +274 -0
  117. package/dist/generated/v1/rpc-server-notification.d.ts +256 -0
  118. package/dist/generated/v1/screenshot-omission-reason.d.ts +5 -0
  119. package/dist/generated/v1/session-current-request.d.ts +15 -0
  120. package/dist/generated/v1/session-current-response.d.ts +35 -0
  121. package/dist/generated/v1/session-current-result.d.ts +10 -0
  122. package/dist/generated/v1/session-end-params.d.ts +12 -0
  123. package/dist/generated/v1/session-end-request.d.ts +21 -0
  124. package/dist/generated/v1/session-end-response.d.ts +45 -0
  125. package/dist/generated/v1/session-end-result.d.ts +20 -0
  126. package/dist/generated/v1/session-export-params.d.ts +23 -0
  127. package/dist/generated/v1/session-export-request.d.ts +32 -0
  128. package/dist/generated/v1/session-export-response.d.ts +229 -0
  129. package/dist/generated/v1/session-export-result.d.ts +211 -0
  130. package/dist/generated/v1/session-export.d.ts +204 -0
  131. package/dist/generated/v1/session-id.d.ts +5 -0
  132. package/dist/generated/v1/session-info.d.ts +20 -0
  133. package/dist/generated/v1/session-outcome.d.ts +5 -0
  134. package/dist/generated/v1/session-start-request.d.ts +15 -0
  135. package/dist/generated/v1/session-start-response.d.ts +45 -0
  136. package/dist/generated/v1/session-start-result.d.ts +20 -0
  137. package/dist/generated/v1/session-state.d.ts +5 -0
  138. package/dist/generated/v1/session-target-params.d.ts +10 -0
  139. package/dist/generated/v1/sessions-list-request.d.ts +15 -0
  140. package/dist/generated/v1/sessions-list-response.d.ts +45 -0
  141. package/dist/generated/v1/sessions-list-result.d.ts +21 -0
  142. package/dist/generated/v1/set-element-value-arguments.d.ts +60 -0
  143. package/dist/generated/v1/set-element-value-result.d.ts +26 -0
  144. package/dist/generated/v1/system-describe-request.d.ts +15 -0
  145. package/dist/generated/v1/system-describe-response.d.ts +63 -0
  146. package/dist/generated/v1/system-describe-result.d.ts +38 -0
  147. package/dist/generated/v1/system-hello-request.d.ts +44 -0
  148. package/dist/generated/v1/system-hello-response.d.ts +54 -0
  149. package/dist/generated/v1/tap-element-arguments.d.ts +59 -0
  150. package/dist/generated/v1/tap-element-result.d.ts +26 -0
  151. package/dist/generated/v1/test-event-payload.d.ts +181 -0
  152. package/dist/generated/v1/test-event.d.ts +191 -0
  153. package/dist/generated/v1/text-match-mode.d.ts +5 -0
  154. package/dist/generated/v1/text-match.d.ts +9 -0
  155. package/dist/generated/v1/transport-info.d.ts +8 -0
  156. package/dist/generated/v1/ui-context-kind.d.ts +5 -0
  157. package/dist/generated/v1/ui-context-ref.d.ts +15 -0
  158. package/dist/generated/v1/ui-context-selector.d.ts +12 -0
  159. package/dist/generated/v1/ui-node-ref.d.ts +23 -0
  160. package/dist/generated/v1/ui-node.d.ts +26 -0
  161. package/dist/generated/v1/ui-rect.d.ts +10 -0
  162. package/dist/generated/v1/ui-snapshot-get-params.d.ts +13 -0
  163. package/dist/generated/v1/ui-snapshot-get-request.d.ts +22 -0
  164. package/dist/generated/v1/ui-snapshot-get-response.d.ts +81 -0
  165. package/dist/generated/v1/ui-snapshot-get-result.d.ts +56 -0
  166. package/dist/generated/v1/ui-snapshot-omission-reason.d.ts +5 -0
  167. package/dist/generated/v1/ui-snapshot-ref.d.ts +32 -0
  168. package/dist/generated/v1/ui-snapshot.d.ts +56 -0
  169. package/dist/generated/v1/verdict-record-params.d.ts +29 -0
  170. package/dist/generated/v1/verdict-record-request.d.ts +38 -0
  171. package/dist/generated/v1/verdict-record-response.d.ts +215 -0
  172. package/dist/generated/v1/verdict-record-result.d.ts +197 -0
  173. package/dist/generated/v1/verdict-status.d.ts +5 -0
  174. package/dist/generated/v1/verdict.d.ts +20 -0
  175. package/dist/generated/v1/viewport.d.ts +10 -0
  176. package/dist/generated/v1/wait-for-element-arguments.d.ts +35 -0
  177. package/dist/generated/v1/wait-for-element-condition.d.ts +5 -0
  178. package/dist/generated/v1/wait-for-element-result.d.ts +29 -0
  179. package/dist/index.d.ts +1 -0
  180. package/package.json +49 -0
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RpcIdSchema = string | number;
6
+ export type JsonRpcVersion = "2.0";
7
+ export type MediaStreamStartMethodSchema = "media.stream.start";
8
+ export type MediaStreamKind = "screenshot" | "video";
9
+ export interface MediaStreamStartRequest {
10
+ id: RpcIdSchema;
11
+ jsonrpc: JsonRpcVersion;
12
+ method: MediaStreamStartMethodSchema;
13
+ params: MediaStreamStartParams;
14
+ }
15
+ /**
16
+ * Parameters accepted by `media.stream.start`.
17
+ *
18
+ * The caller chooses only a lifetime-unique stream identifier and the logical
19
+ * stream kind. The daemon assigns the media type from its selected, leased
20
+ * device producer; viewport metadata may be absent. This control method never
21
+ * accepts frame bytes, Evidence references, or filesystem paths.
22
+ */
23
+ export interface MediaStreamStartParams {
24
+ kind: MediaStreamKind;
25
+ streamId: string;
26
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type MediaStreamStartResponse = MediaStreamStartSuccessSchema | SystemHelloFailureSchema;
6
+ export type RpcIdSchema = string | number;
7
+ export type JsonRpcVersion = "2.0";
8
+ export type MediaStreamKind = "screenshot" | "video";
9
+ export type NullableRpcIdSchema = RpcIdSchema | null;
10
+ export interface MediaStreamStartSuccessSchema {
11
+ id: RpcIdSchema;
12
+ jsonrpc: JsonRpcVersion;
13
+ result: MediaStreamStartResult;
14
+ }
15
+ /**
16
+ * Result returned by `media.stream.start`.
17
+ */
18
+ export interface MediaStreamStartResult {
19
+ stream: MediaStreamInfo;
20
+ }
21
+ export interface MediaStreamInfo {
22
+ id: string;
23
+ kind: MediaStreamKind;
24
+ mediaType: string;
25
+ viewport?: Viewport | null;
26
+ }
27
+ export interface Viewport {
28
+ height: number;
29
+ scaleFactor: number;
30
+ width: number;
31
+ [k: string]: unknown;
32
+ }
33
+ export interface SystemHelloFailureSchema {
34
+ error: RpcError;
35
+ id: NullableRpcIdSchema;
36
+ jsonrpc: JsonRpcVersion;
37
+ }
38
+ export interface RpcError {
39
+ code: number;
40
+ data: ErrorInfo;
41
+ message: string;
42
+ }
43
+ export interface ErrorInfo {
44
+ code: string;
45
+ details?: unknown;
46
+ message: string;
47
+ retryable: boolean;
48
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type MediaStreamKind = "screenshot" | "video";
6
+ /**
7
+ * Result returned by `media.stream.start`.
8
+ */
9
+ export interface MediaStreamStartResult {
10
+ stream: MediaStreamInfo;
11
+ }
12
+ export interface MediaStreamInfo {
13
+ id: string;
14
+ kind: MediaStreamKind;
15
+ mediaType: string;
16
+ viewport?: Viewport | null;
17
+ }
18
+ export interface Viewport {
19
+ height: number;
20
+ scaleFactor: number;
21
+ width: number;
22
+ [k: string]: unknown;
23
+ }
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ import type { DeviceCapabilitiesRequest } from "./device-capabilities-request.js";
6
+ import type { DeviceCapabilitiesResponse } from "./device-capabilities-response.js";
7
+ import type { DeviceConnectRequest } from "./device-connect-request.js";
8
+ import type { DeviceConnectResponse } from "./device-connect-response.js";
9
+ import type { DeviceDisconnectRequest } from "./device-disconnect-request.js";
10
+ import type { DeviceDisconnectResponse } from "./device-disconnect-response.js";
11
+ import type { DeviceExecuteRequest } from "./device-execute-request.js";
12
+ import type { DeviceExecuteResponse } from "./device-execute-response.js";
13
+ import type { DeviceObserveRequest } from "./device-observe-request.js";
14
+ import type { DeviceObserveResponse } from "./device-observe-response.js";
15
+ import type { DeviceSelectRequest } from "./device-select-request.js";
16
+ import type { DeviceSelectResponse } from "./device-select-response.js";
17
+ import type { DevicesListRequest } from "./devices-list-request.js";
18
+ import type { DevicesListResponse } from "./devices-list-response.js";
19
+ import type { EventsClearRequest } from "./events-clear-request.js";
20
+ import type { EventsClearResponse } from "./events-clear-response.js";
21
+ import type { EventsListRequest } from "./events-list-request.js";
22
+ import type { EventsListResponse } from "./events-list-response.js";
23
+ import type { EventsStreamOpenRequest } from "./events-stream-open-request.js";
24
+ import type { EventsStreamOpenResponse } from "./events-stream-open-response.js";
25
+ import type { EventsSubscribeRequest } from "./events-subscribe-request.js";
26
+ import type { EventsSubscribeResponse } from "./events-subscribe-response.js";
27
+ import type { MediaStreamCaptureRequest } from "./media-stream-capture-request.js";
28
+ import type { MediaStreamCaptureResponse } from "./media-stream-capture-response.js";
29
+ import type { MediaStreamEndRequest } from "./media-stream-end-request.js";
30
+ import type { MediaStreamEndResponse } from "./media-stream-end-response.js";
31
+ import type { MediaStreamStartRequest } from "./media-stream-start-request.js";
32
+ import type { MediaStreamStartResponse } from "./media-stream-start-response.js";
33
+ import type { RequestCancelRequest } from "./request-cancel-request.js";
34
+ import type { RequestCancelResponse } from "./request-cancel-response.js";
35
+ import type { SessionCurrentRequest } from "./session-current-request.js";
36
+ import type { SessionCurrentResponse } from "./session-current-response.js";
37
+ import type { SessionEndRequest } from "./session-end-request.js";
38
+ import type { SessionEndResponse } from "./session-end-response.js";
39
+ import type { SessionExportRequest } from "./session-export-request.js";
40
+ import type { SessionExportResponse } from "./session-export-response.js";
41
+ import type { SessionStartRequest } from "./session-start-request.js";
42
+ import type { SessionStartResponse } from "./session-start-response.js";
43
+ import type { SessionsListRequest } from "./sessions-list-request.js";
44
+ import type { SessionsListResponse } from "./sessions-list-response.js";
45
+ import type { SystemDescribeRequest } from "./system-describe-request.js";
46
+ import type { SystemDescribeResponse } from "./system-describe-response.js";
47
+ import type { SystemHelloRequest } from "./system-hello-request.js";
48
+ import type { SystemHelloResponse } from "./system-hello-response.js";
49
+ import type { UiSnapshotGetRequest } from "./ui-snapshot-get-request.js";
50
+ import type { UiSnapshotGetResponse } from "./ui-snapshot-get-response.js";
51
+ import type { VerdictRecordRequest } from "./verdict-record-request.js";
52
+ import type { VerdictRecordResponse } from "./verdict-record-response.js";
53
+ export interface RpcMethodMap {
54
+ "device.capabilities": {
55
+ request: DeviceCapabilitiesRequest;
56
+ response: DeviceCapabilitiesResponse;
57
+ };
58
+ "device.connect": {
59
+ request: DeviceConnectRequest;
60
+ response: DeviceConnectResponse;
61
+ };
62
+ "device.disconnect": {
63
+ request: DeviceDisconnectRequest;
64
+ response: DeviceDisconnectResponse;
65
+ };
66
+ "device.execute": {
67
+ request: DeviceExecuteRequest;
68
+ response: DeviceExecuteResponse;
69
+ };
70
+ "device.observe": {
71
+ request: DeviceObserveRequest;
72
+ response: DeviceObserveResponse;
73
+ };
74
+ "device.select": {
75
+ request: DeviceSelectRequest;
76
+ response: DeviceSelectResponse;
77
+ };
78
+ "devices.list": {
79
+ request: DevicesListRequest;
80
+ response: DevicesListResponse;
81
+ };
82
+ "events.clear": {
83
+ request: EventsClearRequest;
84
+ response: EventsClearResponse;
85
+ };
86
+ "events.list": {
87
+ request: EventsListRequest;
88
+ response: EventsListResponse;
89
+ };
90
+ "events.stream.open": {
91
+ request: EventsStreamOpenRequest;
92
+ response: EventsStreamOpenResponse;
93
+ };
94
+ "events.subscribe": {
95
+ request: EventsSubscribeRequest;
96
+ response: EventsSubscribeResponse;
97
+ };
98
+ "media.stream.capture": {
99
+ request: MediaStreamCaptureRequest;
100
+ response: MediaStreamCaptureResponse;
101
+ };
102
+ "media.stream.end": {
103
+ request: MediaStreamEndRequest;
104
+ response: MediaStreamEndResponse;
105
+ };
106
+ "media.stream.start": {
107
+ request: MediaStreamStartRequest;
108
+ response: MediaStreamStartResponse;
109
+ };
110
+ "request.cancel": {
111
+ request: RequestCancelRequest;
112
+ response: RequestCancelResponse;
113
+ };
114
+ "session.current": {
115
+ request: SessionCurrentRequest;
116
+ response: SessionCurrentResponse;
117
+ };
118
+ "session.end": {
119
+ request: SessionEndRequest;
120
+ response: SessionEndResponse;
121
+ };
122
+ "session.export": {
123
+ request: SessionExportRequest;
124
+ response: SessionExportResponse;
125
+ };
126
+ "session.start": {
127
+ request: SessionStartRequest;
128
+ response: SessionStartResponse;
129
+ };
130
+ "sessions.list": {
131
+ request: SessionsListRequest;
132
+ response: SessionsListResponse;
133
+ };
134
+ "system.describe": {
135
+ request: SystemDescribeRequest;
136
+ response: SystemDescribeResponse;
137
+ };
138
+ "system.hello": {
139
+ request: SystemHelloRequest;
140
+ response: SystemHelloResponse;
141
+ };
142
+ "ui.snapshot.get": {
143
+ request: UiSnapshotGetRequest;
144
+ response: UiSnapshotGetResponse;
145
+ };
146
+ "verdict.record": {
147
+ request: VerdictRecordRequest;
148
+ response: VerdictRecordResponse;
149
+ };
150
+ }
151
+ export type RpcMethod = keyof RpcMethodMap;
152
+ export type RpcRequestFor<M extends RpcMethod> = RpcMethodMap[M]["request"];
153
+ export type RpcResponseFor<M extends RpcMethod> = RpcMethodMap[M]["response"];
154
+ export type RpcParamsFor<M extends RpcMethod> = RpcRequestFor<M> extends {
155
+ params: infer P;
156
+ } ? P : RpcRequestFor<M> extends {
157
+ params?: infer P;
158
+ } ? P | undefined : undefined;
159
+ export type RpcResultFor<M extends RpcMethod> = RpcResponseFor<M> extends infer Response ? Response extends {
160
+ result: infer Result;
161
+ } ? Result : never : never;
162
+ export type RpcSupportsTimeout<M extends RpcMethod> = "timeoutMs" extends keyof RpcRequestFor<M> ? true : false;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type ScreenshotOmissionReason = "policy" | "protectedAction";
6
+ export type UiContextKind = "native" | "web";
7
+ export type UiSnapshotOmissionReason = "driverUnsupported" | "policy" | "protectedAction";
8
+ export interface Observation {
9
+ capturedAtMs: number;
10
+ deviceId: string;
11
+ id: string;
12
+ metadata?: {
13
+ [k: string]: unknown;
14
+ };
15
+ screenshot?: AssetRef | null;
16
+ screenshotOmission?: ScreenshotOmissionReason | null;
17
+ uiSnapshot?: UiSnapshotRef | null;
18
+ uiSnapshotOmission?: UiSnapshotOmissionReason | null;
19
+ viewport: Viewport;
20
+ [k: string]: unknown;
21
+ }
22
+ export interface AssetRef {
23
+ id: string;
24
+ mediaType: string;
25
+ sha256?: string | null;
26
+ uri: string;
27
+ [k: string]: unknown;
28
+ }
29
+ /**
30
+ * Small Observation-side reference to a UI Tree Evidence object.
31
+ */
32
+ export interface UiSnapshotRef {
33
+ byteLength: number;
34
+ context: UiContextRef;
35
+ evidence: AssetRef;
36
+ formatVersion: number;
37
+ nodeCount: number;
38
+ }
39
+ /**
40
+ * Full identity of one native accessibility or web-document context.
41
+ * `documentEpoch` is required for both channels and changes after reconnect,
42
+ * navigation, or any replacement that invalidates prior node references.
43
+ */
44
+ export interface UiContextRef {
45
+ contextId: string;
46
+ contextKind: UiContextKind;
47
+ documentEpoch: string;
48
+ }
49
+ export interface Viewport {
50
+ height: number;
51
+ scaleFactor: number;
52
+ width: number;
53
+ [k: string]: unknown;
54
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export interface PeerInfo {
6
+ name: string;
7
+ version: string;
8
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type Platform = {
6
+ kind: "web";
7
+ [k: string]: unknown;
8
+ } | {
9
+ kind: "android";
10
+ [k: string]: unknown;
11
+ } | {
12
+ kind: "ios";
13
+ [k: string]: unknown;
14
+ } | {
15
+ kind: "harmonyOs";
16
+ [k: string]: unknown;
17
+ } | {
18
+ kind: "macOs";
19
+ [k: string]: unknown;
20
+ } | {
21
+ kind: "windows";
22
+ [k: string]: unknown;
23
+ } | {
24
+ kind: "linux";
25
+ [k: string]: unknown;
26
+ } | {
27
+ kind: "rdp";
28
+ [k: string]: unknown;
29
+ } | {
30
+ kind: "mock";
31
+ [k: string]: unknown;
32
+ } | {
33
+ kind: "other";
34
+ value: string;
35
+ [k: string]: unknown;
36
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type ProtocolIncompatibilityReason = "clientTooOld" | "serverTooOld" | "noCommonVersion";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ /**
6
+ * An explicit set of supported ranges. Multiple entries avoid implying support
7
+ * for major versions that a peer intentionally skipped.
8
+ */
9
+ export interface ProtocolOffer {
10
+ /**
11
+ * @minItems 1
12
+ */
13
+ ranges: [ProtocolRange, ...ProtocolRange[]];
14
+ }
15
+ /**
16
+ * A contiguous minor-version range within one protocol major version.
17
+ */
18
+ export interface ProtocolRange {
19
+ major: number;
20
+ maxMinor: number;
21
+ minMinor: number;
22
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ /**
6
+ * A contiguous minor-version range within one protocol major version.
7
+ */
8
+ export interface ProtocolRange {
9
+ major: number;
10
+ maxMinor: number;
11
+ minMinor: number;
12
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export interface ProtocolSelection {
6
+ selected: ProtocolVersion;
7
+ }
8
+ export interface ProtocolVersion {
9
+ major: number;
10
+ minor: number;
11
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export interface ProtocolVersion {
6
+ major: number;
7
+ minor: number;
8
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ /**
6
+ * Durable representation of an Action invocation.
7
+ *
8
+ * Standard calls preserve the historical wire shape. Protected and unknown
9
+ * calls retain only correlation fields and serialize `arguments` as `null`
10
+ * with an explicit `argumentsRedacted` marker.
11
+ */
12
+ export interface RecordedActionCall {
13
+ arguments?: unknown;
14
+ argumentsRedacted?: boolean;
15
+ id: string;
16
+ name: string;
17
+ [k: string]: unknown;
18
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RpcIdSchema = string | number;
6
+ export interface RequestCancelParams {
7
+ requestId: RpcIdSchema;
8
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RpcIdSchema = string | number;
6
+ export type JsonRpcVersion = "2.0";
7
+ export type RequestCancelMethodSchema = "request.cancel";
8
+ export interface RequestCancelRequest {
9
+ id: RpcIdSchema;
10
+ jsonrpc: JsonRpcVersion;
11
+ method: RequestCancelMethodSchema;
12
+ params: RequestCancelParams;
13
+ }
14
+ export interface RequestCancelParams {
15
+ requestId: RpcIdSchema;
16
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RequestCancelResponse = RequestCancelSuccessSchema | SystemHelloFailureSchema;
6
+ export type RpcIdSchema = string | number;
7
+ export type JsonRpcVersion = "2.0";
8
+ export type RequestCancelStatus = "requested" | "alreadyRequested" | "notFound";
9
+ export type NullableRpcIdSchema = RpcIdSchema | null;
10
+ export interface RequestCancelSuccessSchema {
11
+ id: RpcIdSchema;
12
+ jsonrpc: JsonRpcVersion;
13
+ result: RequestCancelResult;
14
+ }
15
+ export interface RequestCancelResult {
16
+ requestId: RpcIdSchema;
17
+ status: RequestCancelStatus;
18
+ }
19
+ export interface SystemHelloFailureSchema {
20
+ error: RpcError;
21
+ id: NullableRpcIdSchema;
22
+ jsonrpc: JsonRpcVersion;
23
+ }
24
+ export interface RpcError {
25
+ code: number;
26
+ data: ErrorInfo;
27
+ message: string;
28
+ }
29
+ export interface ErrorInfo {
30
+ code: string;
31
+ details?: unknown;
32
+ message: string;
33
+ retryable: boolean;
34
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RpcIdSchema = string | number;
6
+ export type RequestCancelStatus = "requested" | "alreadyRequested" | "notFound";
7
+ export interface RequestCancelResult {
8
+ requestId: RpcIdSchema;
9
+ status: RequestCancelStatus;
10
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RequestCancelStatus = "requested" | "alreadyRequested" | "notFound";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ /**
6
+ * A positive timeout in milliseconds that is safe to represent as a JSON
7
+ * number in every supported client language.
8
+ */
9
+ export type RequestTimeoutMs = number;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export interface RpcError {
6
+ code: number;
7
+ data: ErrorInfo;
8
+ message: string;
9
+ }
10
+ export interface ErrorInfo {
11
+ code: string;
12
+ details?: unknown;
13
+ message: string;
14
+ retryable: boolean;
15
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RpcId = string | number;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RpcParams = {
6
+ [k: string]: unknown;
7
+ } | unknown[];
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RpcIdSchema = string | number;
6
+ export type JsonRpcVersion = "2.0";
7
+ export type RpcParams = {
8
+ [k: string]: unknown;
9
+ } | unknown[];
10
+ /**
11
+ * A positive timeout in milliseconds that is safe to represent as a JSON
12
+ * number in every supported client language.
13
+ */
14
+ export type RequestTimeoutMs = number;
15
+ export interface RpcRequest {
16
+ id: RpcIdSchema;
17
+ jsonrpc: JsonRpcVersion;
18
+ method: string;
19
+ params?: RpcParams;
20
+ timeoutMs?: RequestTimeoutMs;
21
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Generated from the checked-in DeviceRail JSON Schema. DO NOT EDIT.
3
+ * Run `pnpm protocol:types:generate` from the repository root.
4
+ */
5
+ export type RpcResponse = RpcSuccessSchema | RpcFailureSchema;
6
+ export type RpcIdSchema = string | number;
7
+ export type JsonRpcVersion = "2.0";
8
+ export type NullableRpcIdSchema = RpcIdSchema | null;
9
+ export interface RpcSuccessSchema {
10
+ id: RpcIdSchema;
11
+ jsonrpc: JsonRpcVersion;
12
+ result: unknown;
13
+ }
14
+ export interface RpcFailureSchema {
15
+ error: RpcError;
16
+ id: NullableRpcIdSchema;
17
+ jsonrpc: JsonRpcVersion;
18
+ }
19
+ export interface RpcError {
20
+ code: number;
21
+ data: ErrorInfo;
22
+ message: string;
23
+ }
24
+ export interface ErrorInfo {
25
+ code: string;
26
+ details?: unknown;
27
+ message: string;
28
+ retryable: boolean;
29
+ }