@roll-agent/relay-protocol 0.3.3 → 0.4.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 (32) hide show
  1. package/dist/control.d.ts +73 -0
  2. package/dist/control.js +18 -0
  3. package/dist/index.d.ts +1971 -3
  4. package/dist/index.js +184 -4
  5. package/dist/schema/roll-relay-protocol-v1.2.schema.json +4436 -0
  6. package/fixtures/v1.2/invalid-approval-projection-raw-input-leak.json +19 -0
  7. package/fixtures/v1.2/invalid-authentication-local-only.json +12 -0
  8. package/fixtures/v1.2/invalid-file-picker-local-only.json +12 -0
  9. package/fixtures/v1.2/invalid-interaction-cancelled-reason-leak.json +10 -0
  10. package/fixtures/v1.2/invalid-interaction-resolved-result-leak.json +18 -0
  11. package/fixtures/v1.2/invalid-legacy-approval-candidate.json +7 -0
  12. package/fixtures/v1.2/invalid-legacy-approval-respond.json +7 -0
  13. package/fixtures/v1.2/invalid-n-minus-one-device-connect.json +6 -0
  14. package/fixtures/v1.2/invalid-non-normal-sensitivity.json +21 -0
  15. package/fixtures/v1.2/invalid-runtime-event-tool-input-leak.json +22 -0
  16. package/fixtures/v1.2/invalid-runtime-event-tool-output-leak.json +21 -0
  17. package/fixtures/v1.2/invalid-user-input-projection-secret-leak.json +22 -0
  18. package/fixtures/v1.2/manifest.json +479 -0
  19. package/fixtures/v1.2/valid-device-connect.json +6 -0
  20. package/fixtures/v1.2/valid-interaction-cancelled.json +9 -0
  21. package/fixtures/v1.2/valid-interaction-candidate-user-input.json +25 -0
  22. package/fixtures/v1.2/valid-interaction-request-approval.json +17 -0
  23. package/fixtures/v1.2/valid-interaction-request-user-input.json +40 -0
  24. package/fixtures/v1.2/valid-interaction-resolved.json +9 -0
  25. package/fixtures/v1.2/valid-runtime-ack.json +5 -0
  26. package/fixtures/v1.2/valid-runtime-encrypted-interaction.json +10 -0
  27. package/fixtures/v1.2/valid-runtime-event-runtime-n-minus-one.json +16 -0
  28. package/fixtures/v1.2/valid-runtime-event.json +16 -0
  29. package/fixtures/v1.2/valid-runtime-gap.json +7 -0
  30. package/fixtures/v1.2/valid-runtime-request.json +10 -0
  31. package/fixtures/v1.2/valid-runtime-response.json +8 -0
  32. package/package.json +5 -4
@@ -0,0 +1,19 @@
1
+ {
2
+ "type": "interaction.request",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 7,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "expiresAt": "2026-08-04T00:05:00.000Z",
9
+ "sensitivity": "normal",
10
+ "method": "approval.request",
11
+ "projection": {
12
+ "approvalId": "00000000-0000-4000-8000-000000000504",
13
+ "agentName": "workspace-agent",
14
+ "toolName": "deploy",
15
+ "input": {
16
+ "secret": "relay-security-sentinel"
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "type": "interaction.request",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 10,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "expiresAt": "2026-08-04T00:05:00.000Z",
9
+ "sensitivity": "normal",
10
+ "method": "authentication.request",
11
+ "projection": {}
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "type": "interaction.request",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 11,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "expiresAt": "2026-08-04T00:05:00.000Z",
9
+ "sensitivity": "normal",
10
+ "method": "filePicker.request",
11
+ "projection": {}
12
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "type": "interaction.cancelled",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 13,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "method": "approval.request",
9
+ "reason": "relay-security-sentinel"
10
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "type": "interaction.resolved",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 12,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "method": "userInput.request",
9
+ "result": {
10
+ "status": "submitted",
11
+ "values": [
12
+ {
13
+ "id": "workspace",
14
+ "value": "relay-security-sentinel"
15
+ }
16
+ ]
17
+ }
18
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "runtime.request",
3
+ "requestId": "00000000-0000-4000-8000-000000000505",
4
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
5
+ "method": "approval.candidate",
6
+ "params": {}
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "runtime.request",
3
+ "requestId": "00000000-0000-4000-8000-000000000505",
4
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
5
+ "method": "approval.respond",
6
+ "params": {}
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "device.connect",
3
+ "protocolVersion": "1.0",
4
+ "deviceId": "00000000-0000-4000-8000-000000000506",
5
+ "pairingToken": "pairing-token-with-sufficient-length"
6
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "type": "interaction.request",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 9,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "expiresAt": "2026-08-04T00:05:00.000Z",
9
+ "sensitivity": "secret",
10
+ "method": "userInput.request",
11
+ "projection": {
12
+ "controls": [
13
+ {
14
+ "id": "workspace",
15
+ "type": "text",
16
+ "label": "目标 Workspace",
17
+ "required": true
18
+ }
19
+ ]
20
+ }
21
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "type": "runtime.event",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 14,
5
+ "event": {
6
+ "protocolVersion": "1.1",
7
+ "runtimeInstanceId": "00000000-0000-4000-8000-000000000501",
8
+ "sequence": 14,
9
+ "timestamp": "2026-08-04T00:00:14.000Z",
10
+ "threadId": "00000000-0000-4000-8000-000000000502",
11
+ "turnId": "00000000-0000-4000-8000-000000000503",
12
+ "event": {
13
+ "type": "tool.started",
14
+ "toolCallId": "tool-1",
15
+ "agentName": "workspace-agent",
16
+ "toolName": "deploy",
17
+ "input": {
18
+ "secret": "relay-security-sentinel"
19
+ }
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "type": "runtime.event",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 15,
5
+ "event": {
6
+ "protocolVersion": "1.1",
7
+ "runtimeInstanceId": "00000000-0000-4000-8000-000000000501",
8
+ "sequence": 15,
9
+ "timestamp": "2026-08-04T00:00:15.000Z",
10
+ "threadId": "00000000-0000-4000-8000-000000000502",
11
+ "turnId": "00000000-0000-4000-8000-000000000503",
12
+ "event": {
13
+ "type": "tool.output",
14
+ "toolCallId": "tool-1",
15
+ "agentName": "workspace-agent",
16
+ "toolName": "deploy",
17
+ "stream": "stdout",
18
+ "delta": "relay-security-sentinel"
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "type": "interaction.request",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 8,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "expiresAt": "2026-08-04T00:05:00.000Z",
9
+ "sensitivity": "normal",
10
+ "method": "userInput.request",
11
+ "projection": {
12
+ "controls": [
13
+ {
14
+ "id": "workspace",
15
+ "type": "text",
16
+ "label": "目标 Workspace",
17
+ "required": true
18
+ }
19
+ ],
20
+ "secret": "relay-security-sentinel"
21
+ }
22
+ }
@@ -0,0 +1,479 @@
1
+ {
2
+ "protocolVersion": "1.2",
3
+ "frames": [
4
+ {
5
+ "id": "device-connect-v11",
6
+ "fixture": "valid-device-connect.json",
7
+ "valid": true
8
+ },
9
+ {
10
+ "id": "runtime-request-v11",
11
+ "fixture": "valid-runtime-request.json",
12
+ "valid": true
13
+ },
14
+ {
15
+ "id": "interaction-candidate-user-input",
16
+ "fixture": "valid-interaction-candidate-user-input.json",
17
+ "valid": true
18
+ },
19
+ {
20
+ "id": "runtime-response-v11",
21
+ "fixture": "valid-runtime-response.json",
22
+ "valid": true
23
+ },
24
+ {
25
+ "id": "runtime-event-v11",
26
+ "fixture": "valid-runtime-event.json",
27
+ "valid": true
28
+ },
29
+ {
30
+ "id": "runtime-event-runtime-n-minus-one",
31
+ "fixture": "valid-runtime-event-runtime-n-minus-one.json",
32
+ "valid": true
33
+ },
34
+ {
35
+ "id": "runtime-ack-v11",
36
+ "fixture": "valid-runtime-ack.json",
37
+ "valid": true
38
+ },
39
+ {
40
+ "id": "runtime-gap-v11",
41
+ "fixture": "valid-runtime-gap.json",
42
+ "valid": true
43
+ },
44
+ {
45
+ "id": "runtime-encrypted-interaction-v11",
46
+ "fixture": "valid-runtime-encrypted-interaction.json",
47
+ "valid": true
48
+ },
49
+ {
50
+ "id": "interaction-request-approval",
51
+ "fixture": "valid-interaction-request-approval.json",
52
+ "valid": true
53
+ },
54
+ {
55
+ "id": "interaction-request-user-input",
56
+ "fixture": "valid-interaction-request-user-input.json",
57
+ "valid": true
58
+ },
59
+ {
60
+ "id": "interaction-resolved",
61
+ "fixture": "valid-interaction-resolved.json",
62
+ "valid": true
63
+ },
64
+ {
65
+ "id": "interaction-cancelled",
66
+ "fixture": "valid-interaction-cancelled.json",
67
+ "valid": true
68
+ },
69
+ {
70
+ "id": "n-minus-one-device-connect-rejected",
71
+ "fixture": "invalid-n-minus-one-device-connect.json",
72
+ "valid": false
73
+ },
74
+ {
75
+ "id": "legacy-approval-respond-rejected",
76
+ "fixture": "invalid-legacy-approval-respond.json",
77
+ "valid": false
78
+ },
79
+ {
80
+ "id": "legacy-approval-candidate-rejected",
81
+ "fixture": "invalid-legacy-approval-candidate.json",
82
+ "valid": false
83
+ },
84
+ {
85
+ "id": "approval-projection-raw-input-leak",
86
+ "fixture": "invalid-approval-projection-raw-input-leak.json",
87
+ "valid": false
88
+ },
89
+ {
90
+ "id": "user-input-projection-secret-leak",
91
+ "fixture": "invalid-user-input-projection-secret-leak.json",
92
+ "valid": false
93
+ },
94
+ {
95
+ "id": "non-normal-sensitivity-rejected",
96
+ "fixture": "invalid-non-normal-sensitivity.json",
97
+ "valid": false
98
+ },
99
+ {
100
+ "id": "authentication-local-only",
101
+ "fixture": "invalid-authentication-local-only.json",
102
+ "valid": false
103
+ },
104
+ {
105
+ "id": "file-picker-local-only",
106
+ "fixture": "invalid-file-picker-local-only.json",
107
+ "valid": false
108
+ },
109
+ {
110
+ "id": "interaction-resolved-result-leak",
111
+ "fixture": "invalid-interaction-resolved-result-leak.json",
112
+ "valid": false
113
+ },
114
+ {
115
+ "id": "interaction-cancelled-reason-leak",
116
+ "fixture": "invalid-interaction-cancelled-reason-leak.json",
117
+ "valid": false
118
+ },
119
+ {
120
+ "id": "runtime-event-tool-input-leak",
121
+ "fixture": "invalid-runtime-event-tool-input-leak.json",
122
+ "valid": false
123
+ },
124
+ {
125
+ "id": "runtime-event-tool-output-leak",
126
+ "fixture": "invalid-runtime-event-tool-output-leak.json",
127
+ "valid": false
128
+ }
129
+ ],
130
+ "negotiation": [],
131
+ "methodRegistry": [],
132
+ "methods": [],
133
+ "replay": [
134
+ {
135
+ "id": "interaction-candidate-duplicate",
136
+ "existing": {
137
+ "type": "runtime.request",
138
+ "requestId": "00000000-0000-4000-8000-000000000509",
139
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
140
+ "method": "interaction.candidate",
141
+ "params": {
142
+ "interactionId": "00000000-0000-4000-8000-000000000511",
143
+ "threadId": "00000000-0000-4000-8000-000000000502",
144
+ "turnId": "00000000-0000-4000-8000-000000000503",
145
+ "method": "userInput.request",
146
+ "candidate": {
147
+ "status": "submitted",
148
+ "values": [
149
+ {
150
+ "id": "region",
151
+ "value": "north"
152
+ },
153
+ {
154
+ "id": "workspace",
155
+ "value": "target-workspace"
156
+ }
157
+ ]
158
+ }
159
+ }
160
+ },
161
+ "candidate": {
162
+ "type": "runtime.request",
163
+ "requestId": "00000000-0000-4000-8000-000000000509",
164
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
165
+ "method": "interaction.candidate",
166
+ "params": {
167
+ "turnId": "00000000-0000-4000-8000-000000000503",
168
+ "interactionId": "00000000-0000-4000-8000-000000000511",
169
+ "candidate": {
170
+ "values": [
171
+ {
172
+ "value": "north",
173
+ "id": "region"
174
+ },
175
+ {
176
+ "value": "target-workspace",
177
+ "id": "workspace"
178
+ }
179
+ ],
180
+ "status": "submitted"
181
+ },
182
+ "method": "userInput.request",
183
+ "threadId": "00000000-0000-4000-8000-000000000502"
184
+ }
185
+ },
186
+ "expected": {
187
+ "disposition": "replay"
188
+ }
189
+ },
190
+ {
191
+ "id": "interaction-candidate-conflict",
192
+ "existing": {
193
+ "type": "runtime.request",
194
+ "requestId": "00000000-0000-4000-8000-000000000509",
195
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
196
+ "method": "interaction.candidate",
197
+ "params": {
198
+ "interactionId": "00000000-0000-4000-8000-000000000511",
199
+ "threadId": "00000000-0000-4000-8000-000000000502",
200
+ "turnId": "00000000-0000-4000-8000-000000000503",
201
+ "method": "userInput.request",
202
+ "candidate": {
203
+ "status": "submitted",
204
+ "values": [
205
+ {
206
+ "id": "region",
207
+ "value": "north"
208
+ },
209
+ {
210
+ "id": "workspace",
211
+ "value": "target-workspace"
212
+ }
213
+ ]
214
+ }
215
+ }
216
+ },
217
+ "candidate": {
218
+ "type": "runtime.request",
219
+ "requestId": "00000000-0000-4000-8000-000000000509",
220
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
221
+ "method": "interaction.candidate",
222
+ "params": {
223
+ "interactionId": "00000000-0000-4000-8000-000000000512",
224
+ "threadId": "00000000-0000-4000-8000-000000000502",
225
+ "turnId": "00000000-0000-4000-8000-000000000503",
226
+ "method": "userInput.request",
227
+ "candidate": {
228
+ "status": "submitted",
229
+ "values": [
230
+ {
231
+ "id": "region",
232
+ "value": "north"
233
+ },
234
+ {
235
+ "id": "workspace",
236
+ "value": "target-workspace"
237
+ }
238
+ ]
239
+ }
240
+ }
241
+ },
242
+ "expected": {
243
+ "disposition": "conflict",
244
+ "errorCode": "RELAY_REQUEST_ID_CONFLICT"
245
+ }
246
+ },
247
+ {
248
+ "id": "interaction-candidate-different-request-id",
249
+ "existing": {
250
+ "type": "runtime.request",
251
+ "requestId": "00000000-0000-4000-8000-000000000509",
252
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
253
+ "method": "interaction.candidate",
254
+ "params": {
255
+ "interactionId": "00000000-0000-4000-8000-000000000511",
256
+ "threadId": "00000000-0000-4000-8000-000000000502",
257
+ "turnId": "00000000-0000-4000-8000-000000000503",
258
+ "method": "userInput.request",
259
+ "candidate": {
260
+ "status": "submitted",
261
+ "values": [
262
+ {
263
+ "id": "region",
264
+ "value": "north"
265
+ },
266
+ {
267
+ "id": "workspace",
268
+ "value": "target-workspace"
269
+ }
270
+ ]
271
+ }
272
+ }
273
+ },
274
+ "candidate": {
275
+ "type": "runtime.request",
276
+ "requestId": "00000000-0000-4000-8000-000000000505",
277
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
278
+ "method": "interaction.candidate",
279
+ "params": {
280
+ "interactionId": "00000000-0000-4000-8000-000000000511",
281
+ "threadId": "00000000-0000-4000-8000-000000000502",
282
+ "turnId": "00000000-0000-4000-8000-000000000503",
283
+ "method": "userInput.request",
284
+ "candidate": {
285
+ "status": "submitted",
286
+ "values": [
287
+ {
288
+ "id": "region",
289
+ "value": "north"
290
+ },
291
+ {
292
+ "id": "workspace",
293
+ "value": "target-workspace"
294
+ }
295
+ ]
296
+ }
297
+ }
298
+ },
299
+ "expected": {
300
+ "disposition": "new"
301
+ }
302
+ },
303
+ {
304
+ "id": "interaction-candidate-different-workspace",
305
+ "existing": {
306
+ "type": "runtime.request",
307
+ "requestId": "00000000-0000-4000-8000-000000000509",
308
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
309
+ "method": "interaction.candidate",
310
+ "params": {
311
+ "interactionId": "00000000-0000-4000-8000-000000000511",
312
+ "threadId": "00000000-0000-4000-8000-000000000502",
313
+ "turnId": "00000000-0000-4000-8000-000000000503",
314
+ "method": "userInput.request",
315
+ "candidate": {
316
+ "status": "submitted",
317
+ "values": [
318
+ {
319
+ "id": "region",
320
+ "value": "north"
321
+ },
322
+ {
323
+ "id": "workspace",
324
+ "value": "target-workspace"
325
+ }
326
+ ]
327
+ }
328
+ }
329
+ },
330
+ "candidate": {
331
+ "type": "runtime.request",
332
+ "requestId": "00000000-0000-4000-8000-000000000509",
333
+ "workspaceId": "00000000-0000-4000-8000-000000000510",
334
+ "method": "interaction.candidate",
335
+ "params": {
336
+ "interactionId": "00000000-0000-4000-8000-000000000511",
337
+ "threadId": "00000000-0000-4000-8000-000000000502",
338
+ "turnId": "00000000-0000-4000-8000-000000000503",
339
+ "method": "userInput.request",
340
+ "candidate": {
341
+ "status": "submitted",
342
+ "values": [
343
+ {
344
+ "id": "region",
345
+ "value": "north"
346
+ },
347
+ {
348
+ "id": "workspace",
349
+ "value": "target-workspace"
350
+ }
351
+ ]
352
+ }
353
+ }
354
+ },
355
+ "expected": {
356
+ "disposition": "new"
357
+ }
358
+ }
359
+ ],
360
+ "ack": [
361
+ {
362
+ "id": "initial-advance",
363
+ "acknowledgedThrough": -1,
364
+ "advertisedThrough": 0,
365
+ "incomingThrough": 0,
366
+ "expected": "advance"
367
+ },
368
+ {
369
+ "id": "advance-contiguous-prefix",
370
+ "acknowledgedThrough": 0,
371
+ "advertisedThrough": 2,
372
+ "incomingThrough": 2,
373
+ "expected": "advance"
374
+ },
375
+ {
376
+ "id": "equal-duplicate-ack",
377
+ "acknowledgedThrough": 2,
378
+ "advertisedThrough": 2,
379
+ "incomingThrough": 2,
380
+ "expected": "duplicate"
381
+ },
382
+ {
383
+ "id": "stale-duplicate-ack",
384
+ "acknowledgedThrough": 2,
385
+ "advertisedThrough": 2,
386
+ "incomingThrough": 1,
387
+ "expected": "duplicate"
388
+ },
389
+ {
390
+ "id": "ack-beyond-advertised",
391
+ "acknowledgedThrough": 0,
392
+ "advertisedThrough": 1,
393
+ "incomingThrough": 2,
394
+ "expected": "invalid"
395
+ },
396
+ {
397
+ "id": "fractional-ack",
398
+ "acknowledgedThrough": 0,
399
+ "advertisedThrough": 1,
400
+ "incomingThrough": 0.5,
401
+ "expected": "invalid"
402
+ },
403
+ {
404
+ "id": "ack-below-sentinel",
405
+ "acknowledgedThrough": -2,
406
+ "advertisedThrough": 0,
407
+ "incomingThrough": 0,
408
+ "expected": "invalid"
409
+ }
410
+ ],
411
+ "errors": [
412
+ {
413
+ "id": "error-retryability-RELAY_PROTOCOL_VERSION_UNSUPPORTED",
414
+ "code": "RELAY_PROTOCOL_VERSION_UNSUPPORTED",
415
+ "retryable": false
416
+ },
417
+ {
418
+ "id": "error-retryability-RELAY_INVALID_FRAME",
419
+ "code": "RELAY_INVALID_FRAME",
420
+ "retryable": false
421
+ },
422
+ {
423
+ "id": "error-retryability-INVALID_PARAMS",
424
+ "code": "INVALID_PARAMS",
425
+ "retryable": false
426
+ },
427
+ {
428
+ "id": "error-retryability-RELAY_REQUEST_ID_CONFLICT",
429
+ "code": "RELAY_REQUEST_ID_CONFLICT",
430
+ "retryable": false
431
+ },
432
+ {
433
+ "id": "error-retryability-WORKSPACE_NOT_FOUND",
434
+ "code": "WORKSPACE_NOT_FOUND",
435
+ "retryable": false
436
+ },
437
+ {
438
+ "id": "error-retryability-RELAY_ENCRYPTION_REQUIRED",
439
+ "code": "RELAY_ENCRYPTION_REQUIRED",
440
+ "retryable": false
441
+ },
442
+ {
443
+ "id": "error-retryability-ENCRYPTED_PAYLOAD_INVALID",
444
+ "code": "ENCRYPTED_PAYLOAD_INVALID",
445
+ "retryable": false
446
+ },
447
+ {
448
+ "id": "error-retryability-LocalApprovalDeniedError",
449
+ "code": "LocalApprovalDeniedError",
450
+ "retryable": false
451
+ },
452
+ {
453
+ "id": "error-retryability-LocalConfirmationRequiredError",
454
+ "code": "LocalConfirmationRequiredError",
455
+ "retryable": false
456
+ },
457
+ {
458
+ "id": "error-retryability-COMPANION_ERROR",
459
+ "code": "COMPANION_ERROR",
460
+ "retryable": false
461
+ }
462
+ ],
463
+ "encryptedVisibleMetadataFields": [
464
+ "type",
465
+ "workspaceId",
466
+ "envelopeId",
467
+ "payloadKind",
468
+ "requestId",
469
+ "relaySequence",
470
+ "algorithm",
471
+ "nonce",
472
+ "ciphertext"
473
+ ],
474
+ "deferredBreakingRules": [
475
+ "runtime.response-result-xor-error",
476
+ "encrypted-payload-kind-required-metadata",
477
+ "gap-from-not-after-through"
478
+ ]
479
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "device.connect",
3
+ "protocolVersion": "1.2",
4
+ "deviceId": "00000000-0000-4000-8000-000000000506",
5
+ "pairingToken": "pairing-token-with-sufficient-length"
6
+ }