@stim-cli/server 1.10.1 → 1.12.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.
@@ -28,7 +28,13 @@
28
28
  "status-failed",
29
29
  "logs-failed",
30
30
  "stim-failed",
31
- "frames-failed"
31
+ "frames-failed",
32
+ "forbidden",
33
+ "unknown-action",
34
+ "action-busy",
35
+ "action-failed",
36
+ "device-busy",
37
+ "unknown-session"
32
38
  ]
33
39
  },
34
40
  "message": {
@@ -104,6 +110,7 @@
104
110
  "protocol",
105
111
  "server",
106
112
  "capabilities",
113
+ "actions",
107
114
  "device"
108
115
  ],
109
116
  "additionalProperties": false,
@@ -116,7 +123,8 @@
116
123
  "required": [
117
124
  "name",
118
125
  "version",
119
- "stim"
126
+ "stim",
127
+ "home"
120
128
  ],
121
129
  "additionalProperties": false,
122
130
  "properties": {
@@ -128,144 +136,835 @@
128
136
  },
129
137
  "stim": {
130
138
  "type": "string"
139
+ },
140
+ "home": {
141
+ "type": "string"
142
+ }
143
+ }
144
+ },
145
+ "capabilities": {
146
+ "type": "array",
147
+ "items": {
148
+ "enum": [
149
+ "read",
150
+ "control"
151
+ ]
152
+ }
153
+ },
154
+ "actions": {
155
+ "type": "array",
156
+ "items": {
157
+ "enum": [
158
+ "reload",
159
+ "stop"
160
+ ]
161
+ }
162
+ },
163
+ "device": {
164
+ "type": "object",
165
+ "required": [
166
+ "id",
167
+ "name"
168
+ ],
169
+ "additionalProperties": false,
170
+ "properties": {
171
+ "id": {
172
+ "type": "string"
173
+ },
174
+ "name": {
175
+ "type": "string"
176
+ }
177
+ }
178
+ },
179
+ "deviceToken": {
180
+ "type": "string"
181
+ }
182
+ }
183
+ },
184
+ "LogRecord": {
185
+ "type": "object",
186
+ "description": "One record as `stim logs --json` prints it.",
187
+ "properties": {
188
+ "ts": {
189
+ "type": "number"
190
+ },
191
+ "src": {
192
+ "type": "string"
193
+ },
194
+ "level": {
195
+ "type": "string"
196
+ },
197
+ "msg": {
198
+ "type": "string"
199
+ }
200
+ }
201
+ },
202
+ "LogFilter": {
203
+ "type": "object",
204
+ "required": [
205
+ "workspace"
206
+ ],
207
+ "additionalProperties": false,
208
+ "properties": {
209
+ "workspace": {
210
+ "type": "string",
211
+ "description": "An environment path from a status payload."
212
+ },
213
+ "sources": {
214
+ "type": "array",
215
+ "minItems": 1,
216
+ "items": {
217
+ "enum": [
218
+ "metro",
219
+ "client",
220
+ "device",
221
+ "build",
222
+ "agent"
223
+ ]
224
+ }
225
+ },
226
+ "level": {
227
+ "enum": [
228
+ "debug",
229
+ "info",
230
+ "warn",
231
+ "error",
232
+ "fatal"
233
+ ]
234
+ },
235
+ "slot": {
236
+ "type": "string",
237
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
238
+ },
239
+ "grep": {
240
+ "type": "string",
241
+ "pattern": "^[^\\u0000]*$",
242
+ "description": "A regular expression matched against each message."
243
+ },
244
+ "errors": {
245
+ "type": "boolean"
246
+ },
247
+ "tail": {
248
+ "type": "integer",
249
+ "minimum": 1,
250
+ "maximum": 5000,
251
+ "default": 5000
252
+ }
253
+ }
254
+ },
255
+ "FrameTarget": {
256
+ "type": "object",
257
+ "required": [
258
+ "workspace",
259
+ "platform"
260
+ ],
261
+ "additionalProperties": false,
262
+ "properties": {
263
+ "workspace": {
264
+ "type": "string",
265
+ "description": "An environment path from a status payload."
266
+ },
267
+ "platform": {
268
+ "enum": [
269
+ "ios",
270
+ "android"
271
+ ]
272
+ },
273
+ "slot": {
274
+ "type": "string",
275
+ "minLength": 1,
276
+ "default": "default"
277
+ },
278
+ "fps": {
279
+ "type": "integer",
280
+ "minimum": 1,
281
+ "maximum": 60,
282
+ "default": 5,
283
+ "description": "At most 30 unless the result offers video."
284
+ },
285
+ "maxEdge": {
286
+ "type": "integer",
287
+ "minimum": 240,
288
+ "maximum": 2048,
289
+ "default": 1280
290
+ },
291
+ "video": {
292
+ "type": "array",
293
+ "items": {
294
+ "enum": [
295
+ "h264"
296
+ ]
297
+ }
298
+ }
299
+ }
300
+ },
301
+ "ActionParams": {
302
+ "oneOf": [
303
+ {
304
+ "type": "object",
305
+ "required": [
306
+ "action",
307
+ "workspace"
308
+ ],
309
+ "additionalProperties": false,
310
+ "properties": {
311
+ "action": {
312
+ "const": "reload"
313
+ },
314
+ "workspace": {
315
+ "type": "string",
316
+ "description": "An environment path from a status payload."
317
+ },
318
+ "platform": {
319
+ "enum": [
320
+ "ios",
321
+ "android"
322
+ ]
323
+ }
324
+ }
325
+ },
326
+ {
327
+ "type": "object",
328
+ "required": [
329
+ "action",
330
+ "workspace"
331
+ ],
332
+ "additionalProperties": false,
333
+ "properties": {
334
+ "action": {
335
+ "const": "stop"
336
+ },
337
+ "workspace": {
338
+ "type": "string",
339
+ "description": "An environment path from a status payload."
340
+ }
341
+ }
342
+ }
343
+ ]
344
+ },
345
+ "ActionResult": {
346
+ "type": "object",
347
+ "required": [
348
+ "action",
349
+ "workspace",
350
+ "output"
351
+ ],
352
+ "additionalProperties": false,
353
+ "properties": {
354
+ "action": {
355
+ "enum": [
356
+ "reload",
357
+ "stop"
358
+ ]
359
+ },
360
+ "workspace": {
361
+ "type": "string"
362
+ },
363
+ "output": {
364
+ "type": "object",
365
+ "description": "The JSON the command printed."
366
+ }
367
+ }
368
+ },
369
+ "ControlBeginParams": {
370
+ "type": "object",
371
+ "required": [
372
+ "workspace",
373
+ "platform"
374
+ ],
375
+ "additionalProperties": false,
376
+ "properties": {
377
+ "workspace": {
378
+ "type": "string",
379
+ "description": "An environment path from a status payload."
380
+ },
381
+ "platform": {
382
+ "enum": [
383
+ "ios",
384
+ "android"
385
+ ]
386
+ },
387
+ "slot": {
388
+ "type": "string",
389
+ "minLength": 1,
390
+ "default": "default"
391
+ },
392
+ "takeOver": {
393
+ "type": "boolean",
394
+ "default": false
395
+ }
396
+ }
397
+ },
398
+ "ControlBeginResult": {
399
+ "type": "object",
400
+ "required": [
401
+ "session",
402
+ "platform",
403
+ "lease",
404
+ "postures"
405
+ ],
406
+ "additionalProperties": false,
407
+ "properties": {
408
+ "session": {
409
+ "type": "string"
410
+ },
411
+ "platform": {
412
+ "enum": [
413
+ "ios",
414
+ "android"
415
+ ]
416
+ },
417
+ "lease": {
418
+ "oneOf": [
419
+ {
420
+ "type": "null"
421
+ },
422
+ {
423
+ "type": "object",
424
+ "required": [
425
+ "grantedAt",
426
+ "expiresAt"
427
+ ],
428
+ "additionalProperties": false,
429
+ "properties": {
430
+ "grantedAt": {
431
+ "type": [
432
+ "string",
433
+ "null"
434
+ ],
435
+ "format": "date-time"
436
+ },
437
+ "expiresAt": {
438
+ "type": "string",
439
+ "format": "date-time"
440
+ }
441
+ }
442
+ }
443
+ ]
444
+ },
445
+ "postures": {
446
+ "type": "array",
447
+ "items": {
448
+ "enum": [
449
+ "folded",
450
+ "half-open",
451
+ "unfolded"
452
+ ]
453
+ },
454
+ "uniqueItems": true
455
+ }
456
+ }
457
+ },
458
+ "BuildPlanParams": {
459
+ "type": "object",
460
+ "required": [
461
+ "workspace",
462
+ "platform"
463
+ ],
464
+ "additionalProperties": false,
465
+ "properties": {
466
+ "workspace": {
467
+ "type": "string",
468
+ "description": "An environment path from a status payload."
469
+ },
470
+ "platform": {
471
+ "enum": [
472
+ "ios",
473
+ "android"
474
+ ]
475
+ },
476
+ "slot": {
477
+ "type": "string",
478
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
479
+ "default": "default"
480
+ }
481
+ }
482
+ },
483
+ "WorkspaceParams": {
484
+ "type": "object",
485
+ "additionalProperties": false,
486
+ "properties": {
487
+ "workspace": {
488
+ "type": "string",
489
+ "description": "An environment path from a status payload."
490
+ }
491
+ }
492
+ },
493
+ "MachineHistory": {
494
+ "type": "object",
495
+ "required": [
496
+ "intervalMs",
497
+ "samples"
498
+ ],
499
+ "additionalProperties": false,
500
+ "properties": {
501
+ "intervalMs": {
502
+ "type": "integer"
503
+ },
504
+ "samples": {
505
+ "type": "array",
506
+ "items": {
507
+ "type": "object",
508
+ "required": [
509
+ "at",
510
+ "cpu",
511
+ "memoryUsedBytes",
512
+ "memoryPressure",
513
+ "diskFreeBytes"
514
+ ],
515
+ "additionalProperties": false,
516
+ "properties": {
517
+ "at": {
518
+ "type": "integer"
519
+ },
520
+ "cpu": {
521
+ "type": [
522
+ "number",
523
+ "null"
524
+ ]
525
+ },
526
+ "memoryUsedBytes": {
527
+ "type": [
528
+ "number",
529
+ "null"
530
+ ]
531
+ },
532
+ "memoryPressure": {
533
+ "enum": [
534
+ 0,
535
+ 1,
536
+ 2,
537
+ null
538
+ ]
539
+ },
540
+ "diskFreeBytes": {
541
+ "type": [
542
+ "number",
543
+ "null"
544
+ ]
545
+ }
546
+ }
547
+ }
548
+ }
549
+ }
550
+ },
551
+ "MachineUsage": {
552
+ "type": "object",
553
+ "required": [
554
+ "volumes",
555
+ "memory",
556
+ "load",
557
+ "cpu",
558
+ "sampledAt"
559
+ ],
560
+ "additionalProperties": false,
561
+ "properties": {
562
+ "volumes": {
563
+ "type": "array",
564
+ "items": {
565
+ "type": "object",
566
+ "required": [
567
+ "mount",
568
+ "holds",
569
+ "freeBytes",
570
+ "totalBytes"
571
+ ],
572
+ "additionalProperties": false,
573
+ "properties": {
574
+ "mount": {
575
+ "type": "string"
576
+ },
577
+ "holds": {
578
+ "type": "array",
579
+ "items": {
580
+ "type": "string"
581
+ }
582
+ },
583
+ "freeBytes": {
584
+ "type": "number"
585
+ },
586
+ "totalBytes": {
587
+ "type": "number"
588
+ }
589
+ }
590
+ }
591
+ },
592
+ "memory": {
593
+ "type": "object",
594
+ "required": [
595
+ "totalBytes",
596
+ "usedBytes",
597
+ "pressure"
598
+ ],
599
+ "additionalProperties": false,
600
+ "properties": {
601
+ "totalBytes": {
602
+ "type": "number"
603
+ },
604
+ "usedBytes": {
605
+ "type": [
606
+ "number",
607
+ "null"
608
+ ]
609
+ },
610
+ "pressure": {
611
+ "enum": [
612
+ "normal",
613
+ "warning",
614
+ "critical",
615
+ null
616
+ ]
617
+ }
618
+ }
619
+ },
620
+ "load": {
621
+ "type": "object",
622
+ "required": [
623
+ "avg1",
624
+ "avg5",
625
+ "avg15",
626
+ "cpus"
627
+ ],
628
+ "additionalProperties": false,
629
+ "properties": {
630
+ "avg1": {
631
+ "type": "number"
632
+ },
633
+ "avg5": {
634
+ "type": "number"
635
+ },
636
+ "avg15": {
637
+ "type": "number"
638
+ },
639
+ "cpus": {
640
+ "type": "integer"
641
+ }
642
+ }
643
+ },
644
+ "cpu": {
645
+ "type": "object",
646
+ "required": [
647
+ "usage",
648
+ "cores"
649
+ ],
650
+ "additionalProperties": false,
651
+ "properties": {
652
+ "usage": {
653
+ "type": [
654
+ "number",
655
+ "null"
656
+ ]
657
+ },
658
+ "cores": {
659
+ "type": "integer"
660
+ }
661
+ }
662
+ },
663
+ "sampledAt": {
664
+ "type": "string",
665
+ "format": "date-time"
666
+ }
667
+ }
668
+ },
669
+ "ClientRequest": {
670
+ "oneOf": [
671
+ {
672
+ "type": "object",
673
+ "required": [
674
+ "id",
675
+ "method",
676
+ "params"
677
+ ],
678
+ "additionalProperties": false,
679
+ "properties": {
680
+ "id": {
681
+ "type": [
682
+ "integer",
683
+ "string"
684
+ ]
685
+ },
686
+ "method": {
687
+ "const": "hello"
688
+ },
689
+ "params": {
690
+ "$ref": "#/$defs/HelloParams"
691
+ }
692
+ }
693
+ },
694
+ {
695
+ "type": "object",
696
+ "required": [
697
+ "id",
698
+ "method"
699
+ ],
700
+ "additionalProperties": false,
701
+ "properties": {
702
+ "id": {
703
+ "type": [
704
+ "integer",
705
+ "string"
706
+ ]
707
+ },
708
+ "method": {
709
+ "const": "status.subscribe"
710
+ },
711
+ "params": {
712
+ "type": "object",
713
+ "maxProperties": 0
714
+ }
715
+ }
716
+ },
717
+ {
718
+ "type": "object",
719
+ "required": [
720
+ "id",
721
+ "method",
722
+ "params"
723
+ ],
724
+ "additionalProperties": false,
725
+ "properties": {
726
+ "id": {
727
+ "type": [
728
+ "integer",
729
+ "string"
730
+ ]
731
+ },
732
+ "method": {
733
+ "const": "logs.query"
734
+ },
735
+ "params": {
736
+ "$ref": "#/$defs/LogFilter"
737
+ }
738
+ }
739
+ },
740
+ {
741
+ "type": "object",
742
+ "required": [
743
+ "id",
744
+ "method",
745
+ "params"
746
+ ],
747
+ "additionalProperties": false,
748
+ "properties": {
749
+ "id": {
750
+ "type": [
751
+ "integer",
752
+ "string"
753
+ ]
754
+ },
755
+ "method": {
756
+ "const": "logs.subscribe"
757
+ },
758
+ "params": {
759
+ "$ref": "#/$defs/LogFilter"
760
+ }
761
+ }
762
+ },
763
+ {
764
+ "type": "object",
765
+ "required": [
766
+ "id",
767
+ "method",
768
+ "params"
769
+ ],
770
+ "additionalProperties": false,
771
+ "properties": {
772
+ "id": {
773
+ "type": [
774
+ "integer",
775
+ "string"
776
+ ]
777
+ },
778
+ "method": {
779
+ "const": "frames.subscribe"
780
+ },
781
+ "params": {
782
+ "$ref": "#/$defs/FrameTarget"
783
+ }
784
+ }
785
+ },
786
+ {
787
+ "type": "object",
788
+ "required": [
789
+ "id",
790
+ "method",
791
+ "params"
792
+ ],
793
+ "additionalProperties": false,
794
+ "properties": {
795
+ "id": {
796
+ "type": [
797
+ "integer",
798
+ "string"
799
+ ]
800
+ },
801
+ "method": {
802
+ "const": "frames.keyframe"
803
+ },
804
+ "params": {
805
+ "type": "object",
806
+ "required": [
807
+ "subscription"
808
+ ],
809
+ "additionalProperties": false,
810
+ "properties": {
811
+ "subscription": {
812
+ "type": "string"
813
+ }
814
+ }
815
+ }
816
+ }
817
+ },
818
+ {
819
+ "type": "object",
820
+ "required": [
821
+ "id",
822
+ "method",
823
+ "params"
824
+ ],
825
+ "additionalProperties": false,
826
+ "properties": {
827
+ "id": {
828
+ "type": [
829
+ "integer",
830
+ "string"
831
+ ]
832
+ },
833
+ "method": {
834
+ "const": "build.plan"
835
+ },
836
+ "params": {
837
+ "$ref": "#/$defs/BuildPlanParams"
838
+ }
839
+ }
840
+ },
841
+ {
842
+ "type": "object",
843
+ "required": [
844
+ "id",
845
+ "method"
846
+ ],
847
+ "additionalProperties": false,
848
+ "properties": {
849
+ "id": {
850
+ "type": [
851
+ "integer",
852
+ "string"
853
+ ]
854
+ },
855
+ "method": {
856
+ "const": "machine.get"
857
+ },
858
+ "params": {
859
+ "type": "object",
860
+ "maxProperties": 0
861
+ }
862
+ }
863
+ },
864
+ {
865
+ "type": "object",
866
+ "required": [
867
+ "id",
868
+ "method"
869
+ ],
870
+ "additionalProperties": false,
871
+ "properties": {
872
+ "id": {
873
+ "type": [
874
+ "integer",
875
+ "string"
876
+ ]
877
+ },
878
+ "method": {
879
+ "const": "machine.history"
880
+ },
881
+ "params": {
882
+ "type": "object",
883
+ "additionalProperties": false,
884
+ "properties": {
885
+ "sinceMs": {
886
+ "type": "number"
887
+ }
888
+ }
889
+ }
890
+ }
891
+ },
892
+ {
893
+ "type": "object",
894
+ "required": [
895
+ "id",
896
+ "method"
897
+ ],
898
+ "additionalProperties": false,
899
+ "properties": {
900
+ "id": {
901
+ "type": [
902
+ "integer",
903
+ "string"
904
+ ]
905
+ },
906
+ "method": {
907
+ "const": "stats.get"
908
+ },
909
+ "params": {
910
+ "$ref": "#/$defs/WorkspaceParams"
911
+ }
912
+ }
913
+ },
914
+ {
915
+ "type": "object",
916
+ "required": [
917
+ "id",
918
+ "method"
919
+ ],
920
+ "additionalProperties": false,
921
+ "properties": {
922
+ "id": {
923
+ "type": [
924
+ "integer",
925
+ "string"
926
+ ]
927
+ },
928
+ "method": {
929
+ "const": "settings.get"
930
+ },
931
+ "params": {
932
+ "$ref": "#/$defs/WorkspaceParams"
131
933
  }
132
934
  }
133
935
  },
134
- "capabilities": {
135
- "type": "array",
136
- "items": {
137
- "enum": [
138
- "read"
139
- ]
140
- }
141
- },
142
- "device": {
936
+ {
143
937
  "type": "object",
144
938
  "required": [
145
939
  "id",
146
- "name"
940
+ "method",
941
+ "params"
147
942
  ],
148
943
  "additionalProperties": false,
149
944
  "properties": {
150
945
  "id": {
151
- "type": "string"
946
+ "type": [
947
+ "integer",
948
+ "string"
949
+ ]
152
950
  },
153
- "name": {
154
- "type": "string"
951
+ "method": {
952
+ "const": "unsubscribe"
953
+ },
954
+ "params": {
955
+ "type": "object",
956
+ "required": [
957
+ "subscription"
958
+ ],
959
+ "additionalProperties": false,
960
+ "properties": {
961
+ "subscription": {
962
+ "type": "string"
963
+ }
964
+ }
155
965
  }
156
966
  }
157
967
  },
158
- "deviceToken": {
159
- "type": "string"
160
- }
161
- }
162
- },
163
- "LogRecord": {
164
- "type": "object",
165
- "description": "One record as `stim logs --json` prints it.",
166
- "properties": {
167
- "ts": {
168
- "type": "number"
169
- },
170
- "src": {
171
- "type": "string"
172
- },
173
- "level": {
174
- "type": "string"
175
- },
176
- "msg": {
177
- "type": "string"
178
- }
179
- }
180
- },
181
- "LogFilter": {
182
- "type": "object",
183
- "required": [
184
- "workspace"
185
- ],
186
- "additionalProperties": false,
187
- "properties": {
188
- "workspace": {
189
- "type": "string",
190
- "description": "An environment path from a status payload."
191
- },
192
- "sources": {
193
- "type": "array",
194
- "minItems": 1,
195
- "items": {
196
- "enum": [
197
- "metro",
198
- "client",
199
- "device",
200
- "build"
201
- ]
202
- }
203
- },
204
- "level": {
205
- "enum": [
206
- "debug",
207
- "info",
208
- "warn",
209
- "error",
210
- "fatal"
211
- ]
212
- },
213
- "slot": {
214
- "type": "string",
215
- "minLength": 1
216
- },
217
- "grep": {
218
- "type": "string",
219
- "description": "A regular expression matched against each message."
220
- },
221
- "errors": {
222
- "type": "boolean"
223
- },
224
- "tail": {
225
- "type": "integer",
226
- "minimum": 1,
227
- "maximum": 5000,
228
- "default": 5000
229
- }
230
- }
231
- },
232
- "FrameTarget": {
233
- "type": "object",
234
- "required": [
235
- "workspace",
236
- "platform"
237
- ],
238
- "additionalProperties": false,
239
- "properties": {
240
- "workspace": {
241
- "type": "string",
242
- "description": "An environment path from a status payload."
243
- },
244
- "platform": {
245
- "enum": [
246
- "ios",
247
- "android"
248
- ]
249
- },
250
- "slot": {
251
- "type": "string",
252
- "minLength": 1,
253
- "default": "default"
254
- }
255
- }
256
- },
257
- "WorkspaceParams": {
258
- "type": "object",
259
- "additionalProperties": false,
260
- "properties": {
261
- "workspace": {
262
- "type": "string",
263
- "description": "An environment path from a status payload."
264
- }
265
- }
266
- },
267
- "ClientRequest": {
268
- "oneOf": [
269
968
  {
270
969
  "type": "object",
271
970
  "required": [
@@ -282,10 +981,10 @@
282
981
  ]
283
982
  },
284
983
  "method": {
285
- "const": "hello"
984
+ "const": "action"
286
985
  },
287
986
  "params": {
288
- "$ref": "#/$defs/HelloParams"
987
+ "$ref": "#/$defs/ActionParams"
289
988
  }
290
989
  }
291
990
  },
@@ -293,7 +992,8 @@
293
992
  "type": "object",
294
993
  "required": [
295
994
  "id",
296
- "method"
995
+ "method",
996
+ "params"
297
997
  ],
298
998
  "additionalProperties": false,
299
999
  "properties": {
@@ -304,11 +1004,10 @@
304
1004
  ]
305
1005
  },
306
1006
  "method": {
307
- "const": "status.subscribe"
1007
+ "const": "control.begin"
308
1008
  },
309
1009
  "params": {
310
- "type": "object",
311
- "maxProperties": 0
1010
+ "$ref": "#/$defs/ControlBeginParams"
312
1011
  }
313
1012
  }
314
1013
  },
@@ -328,10 +1027,19 @@
328
1027
  ]
329
1028
  },
330
1029
  "method": {
331
- "const": "logs.query"
1030
+ "const": "control.end"
332
1031
  },
333
1032
  "params": {
334
- "$ref": "#/$defs/LogFilter"
1033
+ "type": "object",
1034
+ "required": [
1035
+ "session"
1036
+ ],
1037
+ "additionalProperties": false,
1038
+ "properties": {
1039
+ "session": {
1040
+ "type": "string"
1041
+ }
1042
+ }
335
1043
  }
336
1044
  }
337
1045
  },
@@ -351,10 +1059,45 @@
351
1059
  ]
352
1060
  },
353
1061
  "method": {
354
- "const": "logs.subscribe"
1062
+ "const": "input.touch"
355
1063
  },
356
1064
  "params": {
357
- "$ref": "#/$defs/LogFilter"
1065
+ "type": "object",
1066
+ "required": [
1067
+ "session",
1068
+ "phase",
1069
+ "x",
1070
+ "y"
1071
+ ],
1072
+ "additionalProperties": false,
1073
+ "properties": {
1074
+ "session": {
1075
+ "type": "string"
1076
+ },
1077
+ "phase": {
1078
+ "enum": [
1079
+ "down",
1080
+ "move",
1081
+ "up"
1082
+ ]
1083
+ },
1084
+ "x": {
1085
+ "type": "number",
1086
+ "minimum": 0,
1087
+ "maximum": 1
1088
+ },
1089
+ "y": {
1090
+ "type": "number",
1091
+ "minimum": 0,
1092
+ "maximum": 1
1093
+ },
1094
+ "display": {
1095
+ "type": "integer",
1096
+ "minimum": 0,
1097
+ "maximum": 3,
1098
+ "default": 0
1099
+ }
1100
+ }
358
1101
  }
359
1102
  }
360
1103
  },
@@ -374,10 +1117,26 @@
374
1117
  ]
375
1118
  },
376
1119
  "method": {
377
- "const": "frames.subscribe"
1120
+ "const": "input.text"
378
1121
  },
379
1122
  "params": {
380
- "$ref": "#/$defs/FrameTarget"
1123
+ "type": "object",
1124
+ "required": [
1125
+ "session",
1126
+ "text"
1127
+ ],
1128
+ "additionalProperties": false,
1129
+ "properties": {
1130
+ "session": {
1131
+ "type": "string"
1132
+ },
1133
+ "text": {
1134
+ "type": "string",
1135
+ "minLength": 1,
1136
+ "maxLength": 256,
1137
+ "pattern": "^[\\x20-\\x7e\\n\\t\\b]+$"
1138
+ }
1139
+ }
381
1140
  }
382
1141
  }
383
1142
  },
@@ -385,7 +1144,8 @@
385
1144
  "type": "object",
386
1145
  "required": [
387
1146
  "id",
388
- "method"
1147
+ "method",
1148
+ "params"
389
1149
  ],
390
1150
  "additionalProperties": false,
391
1151
  "properties": {
@@ -396,10 +1156,28 @@
396
1156
  ]
397
1157
  },
398
1158
  "method": {
399
- "const": "stats.get"
1159
+ "const": "input.button"
400
1160
  },
401
1161
  "params": {
402
- "$ref": "#/$defs/WorkspaceParams"
1162
+ "type": "object",
1163
+ "required": [
1164
+ "session",
1165
+ "button"
1166
+ ],
1167
+ "additionalProperties": false,
1168
+ "properties": {
1169
+ "session": {
1170
+ "type": "string"
1171
+ },
1172
+ "button": {
1173
+ "enum": [
1174
+ "home",
1175
+ "lock",
1176
+ "back",
1177
+ "app-switch"
1178
+ ]
1179
+ }
1180
+ }
403
1181
  }
404
1182
  }
405
1183
  },
@@ -407,7 +1185,8 @@
407
1185
  "type": "object",
408
1186
  "required": [
409
1187
  "id",
410
- "method"
1188
+ "method",
1189
+ "params"
411
1190
  ],
412
1191
  "additionalProperties": false,
413
1192
  "properties": {
@@ -418,10 +1197,26 @@
418
1197
  ]
419
1198
  },
420
1199
  "method": {
421
- "const": "settings.get"
1200
+ "const": "input.rotate"
422
1201
  },
423
1202
  "params": {
424
- "$ref": "#/$defs/WorkspaceParams"
1203
+ "type": "object",
1204
+ "required": [
1205
+ "session",
1206
+ "direction"
1207
+ ],
1208
+ "additionalProperties": false,
1209
+ "properties": {
1210
+ "session": {
1211
+ "type": "string"
1212
+ },
1213
+ "direction": {
1214
+ "enum": [
1215
+ "left",
1216
+ "right"
1217
+ ]
1218
+ }
1219
+ }
425
1220
  }
426
1221
  }
427
1222
  },
@@ -441,17 +1236,25 @@
441
1236
  ]
442
1237
  },
443
1238
  "method": {
444
- "const": "unsubscribe"
1239
+ "const": "input.posture"
445
1240
  },
446
1241
  "params": {
447
1242
  "type": "object",
448
1243
  "required": [
449
- "subscription"
1244
+ "session",
1245
+ "posture"
450
1246
  ],
451
1247
  "additionalProperties": false,
452
1248
  "properties": {
453
- "subscription": {
1249
+ "session": {
454
1250
  "type": "string"
1251
+ },
1252
+ "posture": {
1253
+ "enum": [
1254
+ "folded",
1255
+ "half-open",
1256
+ "unfolded"
1257
+ ]
455
1258
  }
456
1259
  }
457
1260
  }
@@ -480,6 +1283,18 @@
480
1283
  {
481
1284
  "$ref": "#/$defs/HelloResult"
482
1285
  },
1286
+ {
1287
+ "$ref": "#/$defs/ControlBeginResult"
1288
+ },
1289
+ {
1290
+ "$ref": "#/$defs/ActionResult"
1291
+ },
1292
+ {
1293
+ "$ref": "#/$defs/MachineUsage"
1294
+ },
1295
+ {
1296
+ "$ref": "#/$defs/MachineHistory"
1297
+ },
483
1298
  {
484
1299
  "type": "object",
485
1300
  "required": [
@@ -489,6 +1304,11 @@
489
1304
  "properties": {
490
1305
  "subscription": {
491
1306
  "type": "string"
1307
+ },
1308
+ "video": {
1309
+ "enum": [
1310
+ "h264"
1311
+ ]
492
1312
  }
493
1313
  }
494
1314
  },
@@ -509,7 +1329,7 @@
509
1329
  },
510
1330
  {
511
1331
  "type": "object",
512
- "description": "The payload of `stim stats --json` or `stim settings --json`, or {} for unsubscribe."
1332
+ "description": "The payload of `stim stats --json`, `stim settings --json` or `stim ios|android --plan --json`, or {} for unsubscribe."
513
1333
  }
514
1334
  ]
515
1335
  }
@@ -629,6 +1449,12 @@
629
1449
  "data": {
630
1450
  "type": "string",
631
1451
  "contentEncoding": "base64"
1452
+ },
1453
+ "posture": {
1454
+ "enum": [
1455
+ "folded",
1456
+ "unfolded"
1457
+ ]
632
1458
  }
633
1459
  }
634
1460
  },
@@ -652,6 +1478,36 @@
652
1478
  }
653
1479
  }
654
1480
  },
1481
+ {
1482
+ "type": "object",
1483
+ "required": [
1484
+ "event",
1485
+ "session",
1486
+ "reason",
1487
+ "message"
1488
+ ],
1489
+ "additionalProperties": false,
1490
+ "properties": {
1491
+ "event": {
1492
+ "const": "control-ended"
1493
+ },
1494
+ "session": {
1495
+ "type": "string"
1496
+ },
1497
+ "reason": {
1498
+ "enum": [
1499
+ "idle",
1500
+ "taken-over",
1501
+ "device-gone",
1502
+ "forbidden",
1503
+ "failed"
1504
+ ]
1505
+ },
1506
+ "message": {
1507
+ "type": "string"
1508
+ }
1509
+ }
1510
+ },
655
1511
  {
656
1512
  "type": "object",
657
1513
  "required": [