@blastlauncher/protocol 0.0.0-stage → 3.0.0-alpha.1

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.
@@ -0,0 +1,3909 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://blastlauncher.dev/schema/embedder-v1.schema.json",
4
+ "title": "Blast embedder protocol v1",
5
+ "description": "NDJSON messages of `blast serve` (decision 0011). Each validated instance is one line: an embedder -> server or a server -> embedder message.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "#/$defs/embedderMessages"
9
+ },
10
+ {
11
+ "$ref": "#/$defs/serverMessages"
12
+ }
13
+ ],
14
+ "$defs": {
15
+ "controllerInput": {
16
+ "oneOf": [
17
+ {
18
+ "type": "object",
19
+ "properties": {
20
+ "type": {
21
+ "const": "search"
22
+ },
23
+ "text": {
24
+ "type": "string"
25
+ }
26
+ },
27
+ "required": [
28
+ "type",
29
+ "text"
30
+ ],
31
+ "additionalProperties": false
32
+ },
33
+ {
34
+ "type": "object",
35
+ "properties": {
36
+ "type": {
37
+ "const": "actionsQuery"
38
+ },
39
+ "text": {
40
+ "type": "string"
41
+ }
42
+ },
43
+ "required": [
44
+ "type",
45
+ "text"
46
+ ],
47
+ "additionalProperties": false
48
+ },
49
+ {
50
+ "type": "object",
51
+ "properties": {
52
+ "type": {
53
+ "const": "dropdownQuery"
54
+ },
55
+ "text": {
56
+ "type": "string"
57
+ }
58
+ },
59
+ "required": [
60
+ "type",
61
+ "text"
62
+ ],
63
+ "additionalProperties": false
64
+ },
65
+ {
66
+ "type": "object",
67
+ "properties": {
68
+ "type": {
69
+ "const": "move"
70
+ },
71
+ "direction": {
72
+ "enum": [
73
+ "up",
74
+ "down",
75
+ "left",
76
+ "right"
77
+ ]
78
+ }
79
+ },
80
+ "required": [
81
+ "type",
82
+ "direction"
83
+ ],
84
+ "additionalProperties": false
85
+ },
86
+ {
87
+ "type": "object",
88
+ "properties": {
89
+ "type": {
90
+ "const": "select"
91
+ },
92
+ "id": {
93
+ "type": "string"
94
+ }
95
+ },
96
+ "required": [
97
+ "type",
98
+ "id"
99
+ ],
100
+ "additionalProperties": false
101
+ },
102
+ {
103
+ "type": "object",
104
+ "properties": {
105
+ "type": {
106
+ "const": "focus"
107
+ },
108
+ "id": {
109
+ "type": "string"
110
+ }
111
+ },
112
+ "required": [
113
+ "type",
114
+ "id"
115
+ ],
116
+ "additionalProperties": false
117
+ },
118
+ {
119
+ "type": "object",
120
+ "properties": {
121
+ "type": {
122
+ "const": "toggle"
123
+ },
124
+ "id": {
125
+ "type": "string"
126
+ }
127
+ },
128
+ "required": [
129
+ "type",
130
+ "id"
131
+ ],
132
+ "additionalProperties": false
133
+ },
134
+ {
135
+ "type": "object",
136
+ "properties": {
137
+ "type": {
138
+ "const": "setValue"
139
+ },
140
+ "id": {
141
+ "type": "string"
142
+ },
143
+ "value": {
144
+ "type": "string"
145
+ }
146
+ },
147
+ "required": [
148
+ "type",
149
+ "id",
150
+ "value"
151
+ ],
152
+ "additionalProperties": false
153
+ },
154
+ {
155
+ "type": "object",
156
+ "properties": {
157
+ "type": {
158
+ "const": "optionMove"
159
+ },
160
+ "delta": {
161
+ "type": "number"
162
+ }
163
+ },
164
+ "required": [
165
+ "type",
166
+ "delta"
167
+ ],
168
+ "additionalProperties": false
169
+ },
170
+ {
171
+ "type": "object",
172
+ "properties": {
173
+ "type": {
174
+ "const": "primary"
175
+ }
176
+ },
177
+ "required": [
178
+ "type"
179
+ ],
180
+ "additionalProperties": false
181
+ },
182
+ {
183
+ "type": "object",
184
+ "properties": {
185
+ "type": {
186
+ "const": "openActions"
187
+ }
188
+ },
189
+ "required": [
190
+ "type"
191
+ ],
192
+ "additionalProperties": false
193
+ },
194
+ {
195
+ "type": "object",
196
+ "properties": {
197
+ "type": {
198
+ "const": "closeActions"
199
+ }
200
+ },
201
+ "required": [
202
+ "type"
203
+ ],
204
+ "additionalProperties": false
205
+ },
206
+ {
207
+ "type": "object",
208
+ "properties": {
209
+ "type": {
210
+ "const": "back"
211
+ }
212
+ },
213
+ "required": [
214
+ "type"
215
+ ],
216
+ "additionalProperties": false
217
+ },
218
+ {
219
+ "type": "object",
220
+ "properties": {
221
+ "type": {
222
+ "const": "openDropdown"
223
+ }
224
+ },
225
+ "required": [
226
+ "type"
227
+ ],
228
+ "additionalProperties": false
229
+ },
230
+ {
231
+ "type": "object",
232
+ "properties": {
233
+ "type": {
234
+ "const": "chooseDropdown"
235
+ }
236
+ },
237
+ "required": [
238
+ "type"
239
+ ],
240
+ "additionalProperties": false
241
+ },
242
+ {
243
+ "type": "object",
244
+ "properties": {
245
+ "type": {
246
+ "const": "focusNext"
247
+ }
248
+ },
249
+ "required": [
250
+ "type"
251
+ ],
252
+ "additionalProperties": false
253
+ },
254
+ {
255
+ "type": "object",
256
+ "properties": {
257
+ "type": {
258
+ "const": "focusPrev"
259
+ }
260
+ },
261
+ "required": [
262
+ "type"
263
+ ],
264
+ "additionalProperties": false
265
+ },
266
+ {
267
+ "type": "object",
268
+ "properties": {
269
+ "type": {
270
+ "const": "optionChoose"
271
+ }
272
+ },
273
+ "required": [
274
+ "type"
275
+ ],
276
+ "additionalProperties": false
277
+ },
278
+ {
279
+ "type": "object",
280
+ "properties": {
281
+ "type": {
282
+ "const": "submit"
283
+ }
284
+ },
285
+ "required": [
286
+ "type"
287
+ ],
288
+ "additionalProperties": false
289
+ },
290
+ {
291
+ "type": "object",
292
+ "properties": {
293
+ "type": {
294
+ "const": "key"
295
+ },
296
+ "key": {
297
+ "type": "object",
298
+ "properties": {
299
+ "name": {
300
+ "type": "string"
301
+ },
302
+ "ctrl": {
303
+ "type": "boolean"
304
+ },
305
+ "meta": {
306
+ "type": "boolean"
307
+ },
308
+ "shift": {
309
+ "type": "boolean"
310
+ },
311
+ "option": {
312
+ "type": "boolean"
313
+ },
314
+ "super": {
315
+ "type": "boolean"
316
+ }
317
+ },
318
+ "required": [
319
+ "name"
320
+ ],
321
+ "additionalProperties": false
322
+ }
323
+ },
324
+ "required": [
325
+ "type",
326
+ "key"
327
+ ],
328
+ "additionalProperties": false
329
+ },
330
+ {
331
+ "type": "object",
332
+ "properties": {
333
+ "type": {
334
+ "const": "toastAction"
335
+ },
336
+ "index": {
337
+ "type": "number"
338
+ }
339
+ },
340
+ "required": [
341
+ "type",
342
+ "index"
343
+ ],
344
+ "additionalProperties": false
345
+ },
346
+ {
347
+ "type": "object",
348
+ "properties": {
349
+ "type": {
350
+ "const": "alert"
351
+ },
352
+ "confirm": {
353
+ "type": "boolean"
354
+ },
355
+ "remember": {
356
+ "type": "boolean"
357
+ }
358
+ },
359
+ "required": [
360
+ "type",
361
+ "confirm"
362
+ ],
363
+ "additionalProperties": false
364
+ }
365
+ ]
366
+ },
367
+ "controllerView": {
368
+ "$comment": "Opaque JSON view model: packages/client-core/src/controller.ts ControllerView.",
369
+ "type": "object",
370
+ "additionalProperties": {
371
+ "$ref": "#/$defs/jsonValue"
372
+ }
373
+ },
374
+ "jsonValue": {
375
+ "type": [
376
+ "string",
377
+ "number",
378
+ "boolean",
379
+ "null",
380
+ "array",
381
+ "object"
382
+ ],
383
+ "items": {
384
+ "$ref": "#/$defs/jsonValue"
385
+ },
386
+ "additionalProperties": {
387
+ "$ref": "#/$defs/jsonValue"
388
+ }
389
+ },
390
+ "handlerRef": {
391
+ "type": "object",
392
+ "properties": {
393
+ "$handler": {
394
+ "type": "string"
395
+ }
396
+ },
397
+ "required": [
398
+ "$handler"
399
+ ],
400
+ "additionalProperties": false
401
+ },
402
+ "embedderError": {
403
+ "type": "object",
404
+ "properties": {
405
+ "code": {
406
+ "type": "string"
407
+ },
408
+ "message": {
409
+ "type": "string"
410
+ },
411
+ "data": {
412
+ "$ref": "#/$defs/jsonValue"
413
+ }
414
+ },
415
+ "required": [
416
+ "code",
417
+ "message"
418
+ ],
419
+ "additionalProperties": false
420
+ },
421
+ "sceneNode": {
422
+ "type": "object",
423
+ "properties": {
424
+ "id": {
425
+ "type": "string"
426
+ },
427
+ "type": {
428
+ "type": "string"
429
+ },
430
+ "props": {
431
+ "type": "object",
432
+ "additionalProperties": {
433
+ "anyOf": [
434
+ {
435
+ "$ref": "#/$defs/handlerRef"
436
+ },
437
+ {
438
+ "$ref": "#/$defs/jsonValue"
439
+ }
440
+ ]
441
+ }
442
+ },
443
+ "children": {
444
+ "type": "array",
445
+ "items": {
446
+ "$ref": "#/$defs/sceneNode"
447
+ }
448
+ }
449
+ },
450
+ "required": [
451
+ "id",
452
+ "type",
453
+ "props",
454
+ "children"
455
+ ],
456
+ "additionalProperties": false
457
+ },
458
+ "sceneMessage": {
459
+ "type": "object",
460
+ "properties": {
461
+ "type": {
462
+ "const": "scene"
463
+ },
464
+ "revision": {
465
+ "type": "integer"
466
+ },
467
+ "root": {
468
+ "anyOf": [
469
+ {
470
+ "$ref": "#/$defs/sceneNode"
471
+ },
472
+ {
473
+ "type": "null"
474
+ }
475
+ ]
476
+ }
477
+ },
478
+ "required": [
479
+ "type",
480
+ "revision",
481
+ "root"
482
+ ],
483
+ "additionalProperties": false
484
+ },
485
+ "logMessage": {
486
+ "type": "object",
487
+ "properties": {
488
+ "type": {
489
+ "const": "log"
490
+ },
491
+ "level": {
492
+ "type": "string",
493
+ "enum": [
494
+ "debug",
495
+ "info",
496
+ "warn",
497
+ "error"
498
+ ]
499
+ },
500
+ "message": {
501
+ "type": "string"
502
+ }
503
+ },
504
+ "required": [
505
+ "type",
506
+ "level",
507
+ "message"
508
+ ],
509
+ "additionalProperties": false
510
+ },
511
+ "request.extension.open": {
512
+ "type": "object",
513
+ "properties": {
514
+ "type": {
515
+ "const": "request"
516
+ },
517
+ "id": {
518
+ "type": "string"
519
+ },
520
+ "method": {
521
+ "const": "extension.open"
522
+ },
523
+ "params": {
524
+ "type": "object",
525
+ "properties": {
526
+ "dir": {
527
+ "type": "string"
528
+ }
529
+ },
530
+ "required": [
531
+ "dir"
532
+ ],
533
+ "additionalProperties": false
534
+ }
535
+ },
536
+ "required": [
537
+ "type",
538
+ "id",
539
+ "method"
540
+ ],
541
+ "additionalProperties": false
542
+ },
543
+ "result.extension.open": {
544
+ "type": "object",
545
+ "properties": {
546
+ "extension": {
547
+ "type": "string"
548
+ }
549
+ },
550
+ "required": [
551
+ "extension"
552
+ ],
553
+ "additionalProperties": false
554
+ },
555
+ "request.extension.manifest": {
556
+ "type": "object",
557
+ "properties": {
558
+ "type": {
559
+ "const": "request"
560
+ },
561
+ "id": {
562
+ "type": "string"
563
+ },
564
+ "method": {
565
+ "const": "extension.manifest"
566
+ },
567
+ "params": {
568
+ "type": "object",
569
+ "properties": {
570
+ "extension": {
571
+ "type": "string"
572
+ }
573
+ },
574
+ "required": [
575
+ "extension"
576
+ ],
577
+ "additionalProperties": false
578
+ }
579
+ },
580
+ "required": [
581
+ "type",
582
+ "id",
583
+ "method"
584
+ ],
585
+ "additionalProperties": false
586
+ },
587
+ "result.extension.manifest": {
588
+ "$ref": "#/$defs/jsonValue"
589
+ },
590
+ "request.extension.watch": {
591
+ "type": "object",
592
+ "properties": {
593
+ "type": {
594
+ "const": "request"
595
+ },
596
+ "id": {
597
+ "type": "string"
598
+ },
599
+ "method": {
600
+ "const": "extension.watch"
601
+ },
602
+ "params": {
603
+ "type": "object",
604
+ "properties": {
605
+ "extension": {
606
+ "type": "string"
607
+ }
608
+ },
609
+ "required": [
610
+ "extension"
611
+ ],
612
+ "additionalProperties": false
613
+ }
614
+ },
615
+ "required": [
616
+ "type",
617
+ "id",
618
+ "method"
619
+ ],
620
+ "additionalProperties": false
621
+ },
622
+ "result.extension.watch": {
623
+ "type": "null"
624
+ },
625
+ "request.extension.unwatch": {
626
+ "type": "object",
627
+ "properties": {
628
+ "type": {
629
+ "const": "request"
630
+ },
631
+ "id": {
632
+ "type": "string"
633
+ },
634
+ "method": {
635
+ "const": "extension.unwatch"
636
+ },
637
+ "params": {
638
+ "type": "object",
639
+ "properties": {
640
+ "extension": {
641
+ "type": "string"
642
+ }
643
+ },
644
+ "required": [
645
+ "extension"
646
+ ],
647
+ "additionalProperties": false
648
+ }
649
+ },
650
+ "required": [
651
+ "type",
652
+ "id",
653
+ "method"
654
+ ],
655
+ "additionalProperties": false
656
+ },
657
+ "result.extension.unwatch": {
658
+ "type": "null"
659
+ },
660
+ "request.extension.close": {
661
+ "type": "object",
662
+ "properties": {
663
+ "type": {
664
+ "const": "request"
665
+ },
666
+ "id": {
667
+ "type": "string"
668
+ },
669
+ "method": {
670
+ "const": "extension.close"
671
+ },
672
+ "params": {
673
+ "type": "object",
674
+ "properties": {
675
+ "extension": {
676
+ "type": "string"
677
+ }
678
+ },
679
+ "required": [
680
+ "extension"
681
+ ],
682
+ "additionalProperties": false
683
+ }
684
+ },
685
+ "required": [
686
+ "type",
687
+ "id",
688
+ "method"
689
+ ],
690
+ "additionalProperties": false
691
+ },
692
+ "result.extension.close": {
693
+ "type": "null"
694
+ },
695
+ "request.extension.dependencies.check": {
696
+ "type": "object",
697
+ "properties": {
698
+ "type": {
699
+ "const": "request"
700
+ },
701
+ "id": {
702
+ "type": "string"
703
+ },
704
+ "method": {
705
+ "const": "extension.dependencies.check"
706
+ },
707
+ "params": {
708
+ "type": "object",
709
+ "properties": {
710
+ "extension": {
711
+ "type": "string"
712
+ }
713
+ },
714
+ "required": [
715
+ "extension"
716
+ ],
717
+ "additionalProperties": false
718
+ }
719
+ },
720
+ "required": [
721
+ "type",
722
+ "id",
723
+ "method"
724
+ ],
725
+ "additionalProperties": false
726
+ },
727
+ "result.extension.dependencies.check": {
728
+ "$ref": "#/$defs/jsonValue"
729
+ },
730
+ "request.extension.dependencies.install": {
731
+ "type": "object",
732
+ "properties": {
733
+ "type": {
734
+ "const": "request"
735
+ },
736
+ "id": {
737
+ "type": "string"
738
+ },
739
+ "method": {
740
+ "const": "extension.dependencies.install"
741
+ },
742
+ "params": {
743
+ "type": "object",
744
+ "properties": {
745
+ "extension": {
746
+ "type": "string"
747
+ }
748
+ },
749
+ "required": [
750
+ "extension"
751
+ ],
752
+ "additionalProperties": false
753
+ }
754
+ },
755
+ "required": [
756
+ "type",
757
+ "id",
758
+ "method"
759
+ ],
760
+ "additionalProperties": false
761
+ },
762
+ "result.extension.dependencies.install": {
763
+ "$ref": "#/$defs/jsonValue"
764
+ },
765
+ "request.extension.preferences": {
766
+ "type": "object",
767
+ "properties": {
768
+ "type": {
769
+ "const": "request"
770
+ },
771
+ "id": {
772
+ "type": "string"
773
+ },
774
+ "method": {
775
+ "const": "extension.preferences"
776
+ },
777
+ "params": {
778
+ "type": "object",
779
+ "properties": {
780
+ "extension": {
781
+ "type": "string"
782
+ },
783
+ "command": {
784
+ "type": "string"
785
+ }
786
+ },
787
+ "required": [
788
+ "extension",
789
+ "command"
790
+ ],
791
+ "additionalProperties": false
792
+ }
793
+ },
794
+ "required": [
795
+ "type",
796
+ "id",
797
+ "method"
798
+ ],
799
+ "additionalProperties": false
800
+ },
801
+ "result.extension.preferences": {
802
+ "$ref": "#/$defs/jsonValue"
803
+ },
804
+ "request.extension.savePreferences": {
805
+ "type": "object",
806
+ "properties": {
807
+ "type": {
808
+ "const": "request"
809
+ },
810
+ "id": {
811
+ "type": "string"
812
+ },
813
+ "method": {
814
+ "const": "extension.savePreferences"
815
+ },
816
+ "params": {
817
+ "type": "object",
818
+ "properties": {
819
+ "extension": {
820
+ "type": "string"
821
+ },
822
+ "command": {
823
+ "type": "string"
824
+ },
825
+ "values": {
826
+ "type": "object",
827
+ "additionalProperties": {
828
+ "type": [
829
+ "string",
830
+ "number",
831
+ "boolean"
832
+ ]
833
+ }
834
+ }
835
+ },
836
+ "required": [
837
+ "extension",
838
+ "command",
839
+ "values"
840
+ ],
841
+ "additionalProperties": false
842
+ }
843
+ },
844
+ "required": [
845
+ "type",
846
+ "id",
847
+ "method"
848
+ ],
849
+ "additionalProperties": false
850
+ },
851
+ "result.extension.savePreferences": {
852
+ "type": "null"
853
+ },
854
+ "request.extension.launch": {
855
+ "type": "object",
856
+ "properties": {
857
+ "type": {
858
+ "const": "request"
859
+ },
860
+ "id": {
861
+ "type": "string"
862
+ },
863
+ "method": {
864
+ "const": "extension.launch"
865
+ },
866
+ "params": {
867
+ "type": "object",
868
+ "properties": {
869
+ "extension": {
870
+ "type": "string"
871
+ },
872
+ "command": {
873
+ "type": "string"
874
+ },
875
+ "argumentValues": {
876
+ "type": "object",
877
+ "additionalProperties": {
878
+ "type": "string"
879
+ }
880
+ },
881
+ "launchContext": {
882
+ "type": "object",
883
+ "additionalProperties": {
884
+ "$ref": "#/$defs/jsonValue"
885
+ }
886
+ },
887
+ "bundleTimeoutMs": {
888
+ "type": "integer",
889
+ "minimum": 0,
890
+ "maximum": 2147483647
891
+ },
892
+ "installDependencies": {
893
+ "type": "boolean"
894
+ },
895
+ "views": {
896
+ "type": "object",
897
+ "properties": {
898
+ "platform": {
899
+ "enum": [
900
+ "macOS",
901
+ "Windows",
902
+ "Linux"
903
+ ]
904
+ }
905
+ },
906
+ "required": [
907
+ "platform"
908
+ ],
909
+ "additionalProperties": false
910
+ }
911
+ },
912
+ "required": [
913
+ "extension",
914
+ "command"
915
+ ],
916
+ "additionalProperties": false
917
+ }
918
+ },
919
+ "required": [
920
+ "type",
921
+ "id",
922
+ "method"
923
+ ],
924
+ "additionalProperties": false
925
+ },
926
+ "result.extension.launch": {
927
+ "type": "object",
928
+ "properties": {
929
+ "session": {
930
+ "type": "string"
931
+ }
932
+ },
933
+ "required": [
934
+ "session"
935
+ ],
936
+ "additionalProperties": false
937
+ },
938
+ "request.session.input": {
939
+ "type": "object",
940
+ "properties": {
941
+ "type": {
942
+ "const": "request"
943
+ },
944
+ "id": {
945
+ "type": "string"
946
+ },
947
+ "method": {
948
+ "const": "session.input"
949
+ },
950
+ "params": {
951
+ "type": "object",
952
+ "properties": {
953
+ "session": {
954
+ "type": "string"
955
+ },
956
+ "input": {
957
+ "$ref": "#/$defs/controllerInput"
958
+ }
959
+ },
960
+ "required": [
961
+ "session",
962
+ "input"
963
+ ],
964
+ "additionalProperties": false
965
+ }
966
+ },
967
+ "required": [
968
+ "type",
969
+ "id",
970
+ "method"
971
+ ],
972
+ "additionalProperties": false
973
+ },
974
+ "result.session.input": {
975
+ "type": "null"
976
+ },
977
+ "request.session.event": {
978
+ "type": "object",
979
+ "properties": {
980
+ "type": {
981
+ "const": "request"
982
+ },
983
+ "id": {
984
+ "type": "string"
985
+ },
986
+ "method": {
987
+ "const": "session.event"
988
+ },
989
+ "params": {
990
+ "type": "object",
991
+ "properties": {
992
+ "session": {
993
+ "type": "string"
994
+ },
995
+ "node": {
996
+ "type": "string"
997
+ },
998
+ "handler": {
999
+ "type": "string"
1000
+ },
1001
+ "args": {
1002
+ "type": "array",
1003
+ "items": {
1004
+ "$ref": "#/$defs/jsonValue"
1005
+ }
1006
+ }
1007
+ },
1008
+ "required": [
1009
+ "session",
1010
+ "node",
1011
+ "handler",
1012
+ "args"
1013
+ ],
1014
+ "additionalProperties": false
1015
+ }
1016
+ },
1017
+ "required": [
1018
+ "type",
1019
+ "id",
1020
+ "method"
1021
+ ],
1022
+ "additionalProperties": false
1023
+ },
1024
+ "result.session.event": {
1025
+ "type": "null"
1026
+ },
1027
+ "request.session.close": {
1028
+ "type": "object",
1029
+ "properties": {
1030
+ "type": {
1031
+ "const": "request"
1032
+ },
1033
+ "id": {
1034
+ "type": "string"
1035
+ },
1036
+ "method": {
1037
+ "const": "session.close"
1038
+ },
1039
+ "params": {
1040
+ "type": "object",
1041
+ "properties": {
1042
+ "session": {
1043
+ "type": "string"
1044
+ }
1045
+ },
1046
+ "required": [
1047
+ "session"
1048
+ ],
1049
+ "additionalProperties": false
1050
+ }
1051
+ },
1052
+ "required": [
1053
+ "type",
1054
+ "id",
1055
+ "method"
1056
+ ],
1057
+ "additionalProperties": false
1058
+ },
1059
+ "result.session.close": {
1060
+ "type": "null"
1061
+ },
1062
+ "request.engine.shutdown": {
1063
+ "type": "object",
1064
+ "properties": {
1065
+ "type": {
1066
+ "const": "request"
1067
+ },
1068
+ "id": {
1069
+ "type": "string"
1070
+ },
1071
+ "method": {
1072
+ "const": "engine.shutdown"
1073
+ },
1074
+ "params": {
1075
+ "type": "object",
1076
+ "properties": {},
1077
+ "required": [],
1078
+ "additionalProperties": false
1079
+ }
1080
+ },
1081
+ "required": [
1082
+ "type",
1083
+ "id",
1084
+ "method"
1085
+ ],
1086
+ "additionalProperties": false
1087
+ },
1088
+ "result.engine.shutdown": {
1089
+ "type": "null"
1090
+ },
1091
+ "request": {
1092
+ "oneOf": [
1093
+ {
1094
+ "$ref": "#/$defs/request.extension.open"
1095
+ },
1096
+ {
1097
+ "$ref": "#/$defs/request.extension.manifest"
1098
+ },
1099
+ {
1100
+ "$ref": "#/$defs/request.extension.watch"
1101
+ },
1102
+ {
1103
+ "$ref": "#/$defs/request.extension.unwatch"
1104
+ },
1105
+ {
1106
+ "$ref": "#/$defs/request.extension.close"
1107
+ },
1108
+ {
1109
+ "$ref": "#/$defs/request.extension.dependencies.check"
1110
+ },
1111
+ {
1112
+ "$ref": "#/$defs/request.extension.dependencies.install"
1113
+ },
1114
+ {
1115
+ "$ref": "#/$defs/request.extension.preferences"
1116
+ },
1117
+ {
1118
+ "$ref": "#/$defs/request.extension.savePreferences"
1119
+ },
1120
+ {
1121
+ "$ref": "#/$defs/request.extension.launch"
1122
+ },
1123
+ {
1124
+ "$ref": "#/$defs/request.session.input"
1125
+ },
1126
+ {
1127
+ "$ref": "#/$defs/request.session.event"
1128
+ },
1129
+ {
1130
+ "$ref": "#/$defs/request.session.close"
1131
+ },
1132
+ {
1133
+ "$ref": "#/$defs/request.engine.shutdown"
1134
+ }
1135
+ ]
1136
+ },
1137
+ "embedder.capability.result": {
1138
+ "oneOf": [
1139
+ {
1140
+ "type": "object",
1141
+ "properties": {
1142
+ "type": {
1143
+ "const": "capability.result"
1144
+ },
1145
+ "id": {
1146
+ "type": "string"
1147
+ },
1148
+ "ok": {
1149
+ "const": true
1150
+ },
1151
+ "value": {
1152
+ "$ref": "#/$defs/jsonValue"
1153
+ }
1154
+ },
1155
+ "required": [
1156
+ "type",
1157
+ "id",
1158
+ "ok",
1159
+ "value"
1160
+ ],
1161
+ "additionalProperties": false
1162
+ },
1163
+ {
1164
+ "type": "object",
1165
+ "properties": {
1166
+ "type": {
1167
+ "const": "capability.result"
1168
+ },
1169
+ "id": {
1170
+ "type": "string"
1171
+ },
1172
+ "ok": {
1173
+ "const": false
1174
+ },
1175
+ "error": {
1176
+ "$ref": "#/$defs/embedderError"
1177
+ }
1178
+ },
1179
+ "required": [
1180
+ "type",
1181
+ "id",
1182
+ "ok",
1183
+ "error"
1184
+ ],
1185
+ "additionalProperties": false
1186
+ }
1187
+ ]
1188
+ },
1189
+ "embedder.capability.progress": {
1190
+ "type": "object",
1191
+ "properties": {
1192
+ "type": {
1193
+ "const": "capability.progress"
1194
+ },
1195
+ "id": {
1196
+ "type": "string"
1197
+ },
1198
+ "value": {
1199
+ "$ref": "#/$defs/jsonValue"
1200
+ }
1201
+ },
1202
+ "required": [
1203
+ "type",
1204
+ "id",
1205
+ "value"
1206
+ ],
1207
+ "additionalProperties": false
1208
+ },
1209
+ "embedder.hello": {
1210
+ "type": "object",
1211
+ "properties": {
1212
+ "type": {
1213
+ "const": "hello"
1214
+ },
1215
+ "protocol": {
1216
+ "type": "integer"
1217
+ },
1218
+ "capabilities": {
1219
+ "type": "array",
1220
+ "items": {
1221
+ "type": "string"
1222
+ }
1223
+ }
1224
+ },
1225
+ "required": [
1226
+ "type",
1227
+ "protocol",
1228
+ "capabilities"
1229
+ ],
1230
+ "additionalProperties": false
1231
+ },
1232
+ "embedderMessages": {
1233
+ "oneOf": [
1234
+ {
1235
+ "$ref": "#/$defs/embedder.hello"
1236
+ },
1237
+ {
1238
+ "$ref": "#/$defs/request"
1239
+ },
1240
+ {
1241
+ "$ref": "#/$defs/embedder.capability.result"
1242
+ },
1243
+ {
1244
+ "$ref": "#/$defs/embedder.capability.progress"
1245
+ }
1246
+ ]
1247
+ },
1248
+ "server.welcome": {
1249
+ "type": "object",
1250
+ "properties": {
1251
+ "type": {
1252
+ "const": "welcome"
1253
+ },
1254
+ "protocol": {
1255
+ "type": "integer"
1256
+ },
1257
+ "engine": {
1258
+ "type": "object",
1259
+ "properties": {
1260
+ "version": {
1261
+ "type": "string"
1262
+ }
1263
+ },
1264
+ "required": [
1265
+ "version"
1266
+ ],
1267
+ "additionalProperties": false
1268
+ },
1269
+ "catalog": {
1270
+ "type": "object",
1271
+ "additionalProperties": {
1272
+ "$ref": "#/$defs/jsonValue"
1273
+ }
1274
+ }
1275
+ },
1276
+ "required": [
1277
+ "type",
1278
+ "protocol",
1279
+ "engine",
1280
+ "catalog"
1281
+ ],
1282
+ "additionalProperties": false
1283
+ },
1284
+ "server.error": {
1285
+ "type": "object",
1286
+ "properties": {
1287
+ "type": {
1288
+ "const": "error"
1289
+ },
1290
+ "error": {
1291
+ "$ref": "#/$defs/embedderError"
1292
+ }
1293
+ },
1294
+ "required": [
1295
+ "type",
1296
+ "error"
1297
+ ],
1298
+ "additionalProperties": false
1299
+ },
1300
+ "response": {
1301
+ "oneOf": [
1302
+ {
1303
+ "type": "object",
1304
+ "properties": {
1305
+ "type": {
1306
+ "const": "response"
1307
+ },
1308
+ "id": {
1309
+ "type": "string"
1310
+ },
1311
+ "ok": {
1312
+ "const": true
1313
+ },
1314
+ "result": {
1315
+ "$ref": "#/$defs/jsonValue"
1316
+ }
1317
+ },
1318
+ "required": [
1319
+ "type",
1320
+ "id",
1321
+ "ok",
1322
+ "result"
1323
+ ],
1324
+ "additionalProperties": false
1325
+ },
1326
+ {
1327
+ "type": "object",
1328
+ "properties": {
1329
+ "type": {
1330
+ "const": "response"
1331
+ },
1332
+ "id": {
1333
+ "type": "string"
1334
+ },
1335
+ "ok": {
1336
+ "const": false
1337
+ },
1338
+ "error": {
1339
+ "$ref": "#/$defs/embedderError"
1340
+ }
1341
+ },
1342
+ "required": [
1343
+ "type",
1344
+ "id",
1345
+ "ok",
1346
+ "error"
1347
+ ],
1348
+ "additionalProperties": false
1349
+ }
1350
+ ]
1351
+ },
1352
+ "server.event": {
1353
+ "oneOf": [
1354
+ {
1355
+ "type": "object",
1356
+ "properties": {
1357
+ "type": {
1358
+ "const": "event"
1359
+ },
1360
+ "event": {
1361
+ "const": "manifest.changed"
1362
+ },
1363
+ "extension": {
1364
+ "type": "string"
1365
+ },
1366
+ "manifest": {
1367
+ "$ref": "#/$defs/jsonValue"
1368
+ }
1369
+ },
1370
+ "required": [
1371
+ "type",
1372
+ "event"
1373
+ ],
1374
+ "additionalProperties": false
1375
+ },
1376
+ {
1377
+ "type": "object",
1378
+ "properties": {
1379
+ "type": {
1380
+ "const": "event"
1381
+ },
1382
+ "event": {
1383
+ "const": "manifest.error"
1384
+ },
1385
+ "extension": {
1386
+ "type": "string"
1387
+ },
1388
+ "error": {
1389
+ "$ref": "#/$defs/embedderError"
1390
+ }
1391
+ },
1392
+ "required": [
1393
+ "type",
1394
+ "event"
1395
+ ],
1396
+ "additionalProperties": false
1397
+ },
1398
+ {
1399
+ "type": "object",
1400
+ "properties": {
1401
+ "type": {
1402
+ "const": "event"
1403
+ },
1404
+ "event": {
1405
+ "const": "dependencies.log"
1406
+ },
1407
+ "extension": {
1408
+ "type": "string"
1409
+ },
1410
+ "message": {
1411
+ "type": "string"
1412
+ }
1413
+ },
1414
+ "required": [
1415
+ "type",
1416
+ "event"
1417
+ ],
1418
+ "additionalProperties": false
1419
+ },
1420
+ {
1421
+ "type": "object",
1422
+ "properties": {
1423
+ "type": {
1424
+ "const": "event"
1425
+ },
1426
+ "event": {
1427
+ "const": "session.scene"
1428
+ },
1429
+ "session": {
1430
+ "type": "string"
1431
+ },
1432
+ "scene": {
1433
+ "$ref": "#/$defs/sceneMessage"
1434
+ }
1435
+ },
1436
+ "required": [
1437
+ "type",
1438
+ "event"
1439
+ ],
1440
+ "additionalProperties": false
1441
+ },
1442
+ {
1443
+ "type": "object",
1444
+ "properties": {
1445
+ "type": {
1446
+ "const": "event"
1447
+ },
1448
+ "event": {
1449
+ "const": "session.view"
1450
+ },
1451
+ "session": {
1452
+ "type": "string"
1453
+ },
1454
+ "view": {
1455
+ "$ref": "#/$defs/controllerView"
1456
+ }
1457
+ },
1458
+ "required": [
1459
+ "type",
1460
+ "event",
1461
+ "session",
1462
+ "view"
1463
+ ],
1464
+ "additionalProperties": false
1465
+ },
1466
+ {
1467
+ "type": "object",
1468
+ "properties": {
1469
+ "type": {
1470
+ "const": "event"
1471
+ },
1472
+ "event": {
1473
+ "const": "session.log"
1474
+ },
1475
+ "session": {
1476
+ "type": "string"
1477
+ },
1478
+ "log": {
1479
+ "$ref": "#/$defs/logMessage"
1480
+ }
1481
+ },
1482
+ "required": [
1483
+ "type",
1484
+ "event"
1485
+ ],
1486
+ "additionalProperties": false
1487
+ },
1488
+ {
1489
+ "type": "object",
1490
+ "properties": {
1491
+ "type": {
1492
+ "const": "event"
1493
+ },
1494
+ "event": {
1495
+ "const": "session.exited"
1496
+ },
1497
+ "session": {
1498
+ "type": "string"
1499
+ },
1500
+ "code": {
1501
+ "type": "integer"
1502
+ },
1503
+ "error": {
1504
+ "$ref": "#/$defs/embedderError"
1505
+ }
1506
+ },
1507
+ "required": [
1508
+ "type",
1509
+ "event"
1510
+ ],
1511
+ "additionalProperties": false
1512
+ }
1513
+ ]
1514
+ },
1515
+ "server.capability.request": {
1516
+ "oneOf": [
1517
+ {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "type": {
1521
+ "const": "capability.request"
1522
+ },
1523
+ "id": {
1524
+ "type": "string"
1525
+ },
1526
+ "session": {
1527
+ "type": "string"
1528
+ },
1529
+ "name": {
1530
+ "const": "storage.get"
1531
+ },
1532
+ "params": {
1533
+ "$ref": "#/$defs/capabilities.storage.get/params"
1534
+ }
1535
+ },
1536
+ "required": [
1537
+ "type",
1538
+ "id",
1539
+ "session",
1540
+ "name"
1541
+ ],
1542
+ "additionalProperties": false
1543
+ },
1544
+ {
1545
+ "type": "object",
1546
+ "properties": {
1547
+ "type": {
1548
+ "const": "capability.request"
1549
+ },
1550
+ "id": {
1551
+ "type": "string"
1552
+ },
1553
+ "session": {
1554
+ "type": "string"
1555
+ },
1556
+ "name": {
1557
+ "const": "storage.set"
1558
+ },
1559
+ "params": {
1560
+ "$ref": "#/$defs/capabilities.storage.set/params"
1561
+ }
1562
+ },
1563
+ "required": [
1564
+ "type",
1565
+ "id",
1566
+ "session",
1567
+ "name"
1568
+ ],
1569
+ "additionalProperties": false
1570
+ },
1571
+ {
1572
+ "type": "object",
1573
+ "properties": {
1574
+ "type": {
1575
+ "const": "capability.request"
1576
+ },
1577
+ "id": {
1578
+ "type": "string"
1579
+ },
1580
+ "session": {
1581
+ "type": "string"
1582
+ },
1583
+ "name": {
1584
+ "const": "storage.remove"
1585
+ },
1586
+ "params": {
1587
+ "$ref": "#/$defs/capabilities.storage.remove/params"
1588
+ }
1589
+ },
1590
+ "required": [
1591
+ "type",
1592
+ "id",
1593
+ "session",
1594
+ "name"
1595
+ ],
1596
+ "additionalProperties": false
1597
+ },
1598
+ {
1599
+ "type": "object",
1600
+ "properties": {
1601
+ "type": {
1602
+ "const": "capability.request"
1603
+ },
1604
+ "id": {
1605
+ "type": "string"
1606
+ },
1607
+ "session": {
1608
+ "type": "string"
1609
+ },
1610
+ "name": {
1611
+ "const": "storage.all"
1612
+ },
1613
+ "params": {
1614
+ "$ref": "#/$defs/capabilities.storage.all/params"
1615
+ }
1616
+ },
1617
+ "required": [
1618
+ "type",
1619
+ "id",
1620
+ "session",
1621
+ "name"
1622
+ ],
1623
+ "additionalProperties": false
1624
+ },
1625
+ {
1626
+ "type": "object",
1627
+ "properties": {
1628
+ "type": {
1629
+ "const": "capability.request"
1630
+ },
1631
+ "id": {
1632
+ "type": "string"
1633
+ },
1634
+ "session": {
1635
+ "type": "string"
1636
+ },
1637
+ "name": {
1638
+ "const": "storage.clear"
1639
+ },
1640
+ "params": {
1641
+ "$ref": "#/$defs/capabilities.storage.clear/params"
1642
+ }
1643
+ },
1644
+ "required": [
1645
+ "type",
1646
+ "id",
1647
+ "session",
1648
+ "name"
1649
+ ],
1650
+ "additionalProperties": false
1651
+ },
1652
+ {
1653
+ "type": "object",
1654
+ "properties": {
1655
+ "type": {
1656
+ "const": "capability.request"
1657
+ },
1658
+ "id": {
1659
+ "type": "string"
1660
+ },
1661
+ "session": {
1662
+ "type": "string"
1663
+ },
1664
+ "name": {
1665
+ "const": "oauth.tokens.get"
1666
+ },
1667
+ "params": {
1668
+ "$ref": "#/$defs/capabilities.oauth.tokens.get/params"
1669
+ }
1670
+ },
1671
+ "required": [
1672
+ "type",
1673
+ "id",
1674
+ "session",
1675
+ "name"
1676
+ ],
1677
+ "additionalProperties": false
1678
+ },
1679
+ {
1680
+ "type": "object",
1681
+ "properties": {
1682
+ "type": {
1683
+ "const": "capability.request"
1684
+ },
1685
+ "id": {
1686
+ "type": "string"
1687
+ },
1688
+ "session": {
1689
+ "type": "string"
1690
+ },
1691
+ "name": {
1692
+ "const": "oauth.tokens.set"
1693
+ },
1694
+ "params": {
1695
+ "$ref": "#/$defs/capabilities.oauth.tokens.set/params"
1696
+ }
1697
+ },
1698
+ "required": [
1699
+ "type",
1700
+ "id",
1701
+ "session",
1702
+ "name"
1703
+ ],
1704
+ "additionalProperties": false
1705
+ },
1706
+ {
1707
+ "type": "object",
1708
+ "properties": {
1709
+ "type": {
1710
+ "const": "capability.request"
1711
+ },
1712
+ "id": {
1713
+ "type": "string"
1714
+ },
1715
+ "session": {
1716
+ "type": "string"
1717
+ },
1718
+ "name": {
1719
+ "const": "oauth.tokens.remove"
1720
+ },
1721
+ "params": {
1722
+ "$ref": "#/$defs/capabilities.oauth.tokens.remove/params"
1723
+ }
1724
+ },
1725
+ "required": [
1726
+ "type",
1727
+ "id",
1728
+ "session",
1729
+ "name"
1730
+ ],
1731
+ "additionalProperties": false
1732
+ },
1733
+ {
1734
+ "type": "object",
1735
+ "properties": {
1736
+ "type": {
1737
+ "const": "capability.request"
1738
+ },
1739
+ "id": {
1740
+ "type": "string"
1741
+ },
1742
+ "session": {
1743
+ "type": "string"
1744
+ },
1745
+ "name": {
1746
+ "const": "oauth.authorize"
1747
+ },
1748
+ "params": {
1749
+ "$ref": "#/$defs/capabilities.oauth.authorize/params"
1750
+ }
1751
+ },
1752
+ "required": [
1753
+ "type",
1754
+ "id",
1755
+ "session",
1756
+ "name"
1757
+ ],
1758
+ "additionalProperties": false
1759
+ },
1760
+ {
1761
+ "type": "object",
1762
+ "properties": {
1763
+ "type": {
1764
+ "const": "capability.request"
1765
+ },
1766
+ "id": {
1767
+ "type": "string"
1768
+ },
1769
+ "session": {
1770
+ "type": "string"
1771
+ },
1772
+ "name": {
1773
+ "const": "ai.ask"
1774
+ },
1775
+ "params": {
1776
+ "$ref": "#/$defs/capabilities.ai.ask/params"
1777
+ }
1778
+ },
1779
+ "required": [
1780
+ "type",
1781
+ "id",
1782
+ "session",
1783
+ "name"
1784
+ ],
1785
+ "additionalProperties": false
1786
+ },
1787
+ {
1788
+ "type": "object",
1789
+ "properties": {
1790
+ "type": {
1791
+ "const": "capability.request"
1792
+ },
1793
+ "id": {
1794
+ "type": "string"
1795
+ },
1796
+ "session": {
1797
+ "type": "string"
1798
+ },
1799
+ "name": {
1800
+ "const": "ai.models.refresh"
1801
+ },
1802
+ "params": {
1803
+ "$ref": "#/$defs/capabilities.ai.models.refresh/params"
1804
+ }
1805
+ },
1806
+ "required": [
1807
+ "type",
1808
+ "id",
1809
+ "session",
1810
+ "name"
1811
+ ],
1812
+ "additionalProperties": false
1813
+ },
1814
+ {
1815
+ "type": "object",
1816
+ "properties": {
1817
+ "type": {
1818
+ "const": "capability.request"
1819
+ },
1820
+ "id": {
1821
+ "type": "string"
1822
+ },
1823
+ "session": {
1824
+ "type": "string"
1825
+ },
1826
+ "name": {
1827
+ "const": "ai.decide"
1828
+ },
1829
+ "params": {
1830
+ "$ref": "#/$defs/capabilities.ai.decide/params"
1831
+ }
1832
+ },
1833
+ "required": [
1834
+ "type",
1835
+ "id",
1836
+ "session",
1837
+ "name"
1838
+ ],
1839
+ "additionalProperties": false
1840
+ },
1841
+ {
1842
+ "type": "object",
1843
+ "properties": {
1844
+ "type": {
1845
+ "const": "capability.request"
1846
+ },
1847
+ "id": {
1848
+ "type": "string"
1849
+ },
1850
+ "session": {
1851
+ "type": "string"
1852
+ },
1853
+ "name": {
1854
+ "const": "browser.tabs"
1855
+ },
1856
+ "params": {
1857
+ "$ref": "#/$defs/capabilities.browser.tabs/params"
1858
+ }
1859
+ },
1860
+ "required": [
1861
+ "type",
1862
+ "id",
1863
+ "session",
1864
+ "name"
1865
+ ],
1866
+ "additionalProperties": false
1867
+ },
1868
+ {
1869
+ "type": "object",
1870
+ "properties": {
1871
+ "type": {
1872
+ "const": "capability.request"
1873
+ },
1874
+ "id": {
1875
+ "type": "string"
1876
+ },
1877
+ "session": {
1878
+ "type": "string"
1879
+ },
1880
+ "name": {
1881
+ "const": "browser.content"
1882
+ },
1883
+ "params": {
1884
+ "$ref": "#/$defs/capabilities.browser.content/params"
1885
+ }
1886
+ },
1887
+ "required": [
1888
+ "type",
1889
+ "id",
1890
+ "session",
1891
+ "name"
1892
+ ],
1893
+ "additionalProperties": false
1894
+ },
1895
+ {
1896
+ "type": "object",
1897
+ "properties": {
1898
+ "type": {
1899
+ "const": "capability.request"
1900
+ },
1901
+ "id": {
1902
+ "type": "string"
1903
+ },
1904
+ "session": {
1905
+ "type": "string"
1906
+ },
1907
+ "name": {
1908
+ "const": "clipboard.copy"
1909
+ },
1910
+ "params": {
1911
+ "$ref": "#/$defs/capabilities.clipboard.copy/params"
1912
+ }
1913
+ },
1914
+ "required": [
1915
+ "type",
1916
+ "id",
1917
+ "session",
1918
+ "name"
1919
+ ],
1920
+ "additionalProperties": false
1921
+ },
1922
+ {
1923
+ "type": "object",
1924
+ "properties": {
1925
+ "type": {
1926
+ "const": "capability.request"
1927
+ },
1928
+ "id": {
1929
+ "type": "string"
1930
+ },
1931
+ "session": {
1932
+ "type": "string"
1933
+ },
1934
+ "name": {
1935
+ "const": "clipboard.clear"
1936
+ },
1937
+ "params": {
1938
+ "$ref": "#/$defs/capabilities.clipboard.clear/params"
1939
+ }
1940
+ },
1941
+ "required": [
1942
+ "type",
1943
+ "id",
1944
+ "session",
1945
+ "name"
1946
+ ],
1947
+ "additionalProperties": false
1948
+ },
1949
+ {
1950
+ "type": "object",
1951
+ "properties": {
1952
+ "type": {
1953
+ "const": "capability.request"
1954
+ },
1955
+ "id": {
1956
+ "type": "string"
1957
+ },
1958
+ "session": {
1959
+ "type": "string"
1960
+ },
1961
+ "name": {
1962
+ "const": "clipboard.paste"
1963
+ },
1964
+ "params": {
1965
+ "$ref": "#/$defs/capabilities.clipboard.paste/params"
1966
+ }
1967
+ },
1968
+ "required": [
1969
+ "type",
1970
+ "id",
1971
+ "session",
1972
+ "name"
1973
+ ],
1974
+ "additionalProperties": false
1975
+ },
1976
+ {
1977
+ "type": "object",
1978
+ "properties": {
1979
+ "type": {
1980
+ "const": "capability.request"
1981
+ },
1982
+ "id": {
1983
+ "type": "string"
1984
+ },
1985
+ "session": {
1986
+ "type": "string"
1987
+ },
1988
+ "name": {
1989
+ "const": "clipboard.read"
1990
+ },
1991
+ "params": {
1992
+ "$ref": "#/$defs/capabilities.clipboard.read/params"
1993
+ }
1994
+ },
1995
+ "required": [
1996
+ "type",
1997
+ "id",
1998
+ "session",
1999
+ "name"
2000
+ ],
2001
+ "additionalProperties": false
2002
+ },
2003
+ {
2004
+ "type": "object",
2005
+ "properties": {
2006
+ "type": {
2007
+ "const": "capability.request"
2008
+ },
2009
+ "id": {
2010
+ "type": "string"
2011
+ },
2012
+ "session": {
2013
+ "type": "string"
2014
+ },
2015
+ "name": {
2016
+ "const": "open.url"
2017
+ },
2018
+ "params": {
2019
+ "$ref": "#/$defs/capabilities.open.url/params"
2020
+ }
2021
+ },
2022
+ "required": [
2023
+ "type",
2024
+ "id",
2025
+ "session",
2026
+ "name"
2027
+ ],
2028
+ "additionalProperties": false
2029
+ },
2030
+ {
2031
+ "type": "object",
2032
+ "properties": {
2033
+ "type": {
2034
+ "const": "capability.request"
2035
+ },
2036
+ "id": {
2037
+ "type": "string"
2038
+ },
2039
+ "session": {
2040
+ "type": "string"
2041
+ },
2042
+ "name": {
2043
+ "const": "open.path"
2044
+ },
2045
+ "params": {
2046
+ "$ref": "#/$defs/capabilities.open.path/params"
2047
+ }
2048
+ },
2049
+ "required": [
2050
+ "type",
2051
+ "id",
2052
+ "session",
2053
+ "name"
2054
+ ],
2055
+ "additionalProperties": false
2056
+ },
2057
+ {
2058
+ "type": "object",
2059
+ "properties": {
2060
+ "type": {
2061
+ "const": "capability.request"
2062
+ },
2063
+ "id": {
2064
+ "type": "string"
2065
+ },
2066
+ "session": {
2067
+ "type": "string"
2068
+ },
2069
+ "name": {
2070
+ "const": "selection.text"
2071
+ },
2072
+ "params": {
2073
+ "$ref": "#/$defs/capabilities.selection.text/params"
2074
+ }
2075
+ },
2076
+ "required": [
2077
+ "type",
2078
+ "id",
2079
+ "session",
2080
+ "name"
2081
+ ],
2082
+ "additionalProperties": false
2083
+ },
2084
+ {
2085
+ "type": "object",
2086
+ "properties": {
2087
+ "type": {
2088
+ "const": "capability.request"
2089
+ },
2090
+ "id": {
2091
+ "type": "string"
2092
+ },
2093
+ "session": {
2094
+ "type": "string"
2095
+ },
2096
+ "name": {
2097
+ "const": "selection.files"
2098
+ },
2099
+ "params": {
2100
+ "$ref": "#/$defs/capabilities.selection.files/params"
2101
+ }
2102
+ },
2103
+ "required": [
2104
+ "type",
2105
+ "id",
2106
+ "session",
2107
+ "name"
2108
+ ],
2109
+ "additionalProperties": false
2110
+ },
2111
+ {
2112
+ "type": "object",
2113
+ "properties": {
2114
+ "type": {
2115
+ "const": "capability.request"
2116
+ },
2117
+ "id": {
2118
+ "type": "string"
2119
+ },
2120
+ "session": {
2121
+ "type": "string"
2122
+ },
2123
+ "name": {
2124
+ "const": "applications.frontmost"
2125
+ },
2126
+ "params": {
2127
+ "$ref": "#/$defs/capabilities.applications.frontmost/params"
2128
+ }
2129
+ },
2130
+ "required": [
2131
+ "type",
2132
+ "id",
2133
+ "session",
2134
+ "name"
2135
+ ],
2136
+ "additionalProperties": false
2137
+ },
2138
+ {
2139
+ "type": "object",
2140
+ "properties": {
2141
+ "type": {
2142
+ "const": "capability.request"
2143
+ },
2144
+ "id": {
2145
+ "type": "string"
2146
+ },
2147
+ "session": {
2148
+ "type": "string"
2149
+ },
2150
+ "name": {
2151
+ "const": "applications.list"
2152
+ },
2153
+ "params": {
2154
+ "$ref": "#/$defs/capabilities.applications.list/params"
2155
+ }
2156
+ },
2157
+ "required": [
2158
+ "type",
2159
+ "id",
2160
+ "session",
2161
+ "name"
2162
+ ],
2163
+ "additionalProperties": false
2164
+ },
2165
+ {
2166
+ "type": "object",
2167
+ "properties": {
2168
+ "type": {
2169
+ "const": "capability.request"
2170
+ },
2171
+ "id": {
2172
+ "type": "string"
2173
+ },
2174
+ "session": {
2175
+ "type": "string"
2176
+ },
2177
+ "name": {
2178
+ "const": "applications.default"
2179
+ },
2180
+ "params": {
2181
+ "$ref": "#/$defs/capabilities.applications.default/params"
2182
+ }
2183
+ },
2184
+ "required": [
2185
+ "type",
2186
+ "id",
2187
+ "session",
2188
+ "name"
2189
+ ],
2190
+ "additionalProperties": false
2191
+ },
2192
+ {
2193
+ "type": "object",
2194
+ "properties": {
2195
+ "type": {
2196
+ "const": "capability.request"
2197
+ },
2198
+ "id": {
2199
+ "type": "string"
2200
+ },
2201
+ "session": {
2202
+ "type": "string"
2203
+ },
2204
+ "name": {
2205
+ "const": "finder.show"
2206
+ },
2207
+ "params": {
2208
+ "$ref": "#/$defs/capabilities.finder.show/params"
2209
+ }
2210
+ },
2211
+ "required": [
2212
+ "type",
2213
+ "id",
2214
+ "session",
2215
+ "name"
2216
+ ],
2217
+ "additionalProperties": false
2218
+ },
2219
+ {
2220
+ "type": "object",
2221
+ "properties": {
2222
+ "type": {
2223
+ "const": "capability.request"
2224
+ },
2225
+ "id": {
2226
+ "type": "string"
2227
+ },
2228
+ "session": {
2229
+ "type": "string"
2230
+ },
2231
+ "name": {
2232
+ "const": "trash"
2233
+ },
2234
+ "params": {
2235
+ "$ref": "#/$defs/capabilities.trash/params"
2236
+ }
2237
+ },
2238
+ "required": [
2239
+ "type",
2240
+ "id",
2241
+ "session",
2242
+ "name"
2243
+ ],
2244
+ "additionalProperties": false
2245
+ },
2246
+ {
2247
+ "type": "object",
2248
+ "properties": {
2249
+ "type": {
2250
+ "const": "capability.request"
2251
+ },
2252
+ "id": {
2253
+ "type": "string"
2254
+ },
2255
+ "session": {
2256
+ "type": "string"
2257
+ },
2258
+ "name": {
2259
+ "const": "window.desktops"
2260
+ },
2261
+ "params": {
2262
+ "$ref": "#/$defs/capabilities.window.desktops/params"
2263
+ }
2264
+ },
2265
+ "required": [
2266
+ "type",
2267
+ "id",
2268
+ "session",
2269
+ "name"
2270
+ ],
2271
+ "additionalProperties": false
2272
+ },
2273
+ {
2274
+ "type": "object",
2275
+ "properties": {
2276
+ "type": {
2277
+ "const": "capability.request"
2278
+ },
2279
+ "id": {
2280
+ "type": "string"
2281
+ },
2282
+ "session": {
2283
+ "type": "string"
2284
+ },
2285
+ "name": {
2286
+ "const": "window.active"
2287
+ },
2288
+ "params": {
2289
+ "$ref": "#/$defs/capabilities.window.active/params"
2290
+ }
2291
+ },
2292
+ "required": [
2293
+ "type",
2294
+ "id",
2295
+ "session",
2296
+ "name"
2297
+ ],
2298
+ "additionalProperties": false
2299
+ },
2300
+ {
2301
+ "type": "object",
2302
+ "properties": {
2303
+ "type": {
2304
+ "const": "capability.request"
2305
+ },
2306
+ "id": {
2307
+ "type": "string"
2308
+ },
2309
+ "session": {
2310
+ "type": "string"
2311
+ },
2312
+ "name": {
2313
+ "const": "window.list"
2314
+ },
2315
+ "params": {
2316
+ "$ref": "#/$defs/capabilities.window.list/params"
2317
+ }
2318
+ },
2319
+ "required": [
2320
+ "type",
2321
+ "id",
2322
+ "session",
2323
+ "name"
2324
+ ],
2325
+ "additionalProperties": false
2326
+ },
2327
+ {
2328
+ "type": "object",
2329
+ "properties": {
2330
+ "type": {
2331
+ "const": "capability.request"
2332
+ },
2333
+ "id": {
2334
+ "type": "string"
2335
+ },
2336
+ "session": {
2337
+ "type": "string"
2338
+ },
2339
+ "name": {
2340
+ "const": "window.setBounds"
2341
+ },
2342
+ "params": {
2343
+ "$ref": "#/$defs/capabilities.window.setBounds/params"
2344
+ }
2345
+ },
2346
+ "required": [
2347
+ "type",
2348
+ "id",
2349
+ "session",
2350
+ "name"
2351
+ ],
2352
+ "additionalProperties": false
2353
+ },
2354
+ {
2355
+ "type": "object",
2356
+ "properties": {
2357
+ "type": {
2358
+ "const": "capability.request"
2359
+ },
2360
+ "id": {
2361
+ "type": "string"
2362
+ },
2363
+ "session": {
2364
+ "type": "string"
2365
+ },
2366
+ "name": {
2367
+ "const": "preferences.open"
2368
+ },
2369
+ "params": {
2370
+ "$ref": "#/$defs/capabilities.preferences.open/params"
2371
+ }
2372
+ },
2373
+ "required": [
2374
+ "type",
2375
+ "id",
2376
+ "session",
2377
+ "name"
2378
+ ],
2379
+ "additionalProperties": false
2380
+ },
2381
+ {
2382
+ "type": "object",
2383
+ "properties": {
2384
+ "type": {
2385
+ "const": "capability.request"
2386
+ },
2387
+ "id": {
2388
+ "type": "string"
2389
+ },
2390
+ "session": {
2391
+ "type": "string"
2392
+ },
2393
+ "name": {
2394
+ "const": "command.launch"
2395
+ },
2396
+ "params": {
2397
+ "$ref": "#/$defs/capabilities.command.launch/params"
2398
+ }
2399
+ },
2400
+ "required": [
2401
+ "type",
2402
+ "id",
2403
+ "session",
2404
+ "name"
2405
+ ],
2406
+ "additionalProperties": false
2407
+ },
2408
+ {
2409
+ "type": "object",
2410
+ "properties": {
2411
+ "type": {
2412
+ "const": "capability.request"
2413
+ },
2414
+ "id": {
2415
+ "type": "string"
2416
+ },
2417
+ "session": {
2418
+ "type": "string"
2419
+ },
2420
+ "name": {
2421
+ "const": "command.metadata"
2422
+ },
2423
+ "params": {
2424
+ "$ref": "#/$defs/capabilities.command.metadata/params"
2425
+ }
2426
+ },
2427
+ "required": [
2428
+ "type",
2429
+ "id",
2430
+ "session",
2431
+ "name"
2432
+ ],
2433
+ "additionalProperties": false
2434
+ },
2435
+ {
2436
+ "type": "object",
2437
+ "properties": {
2438
+ "type": {
2439
+ "const": "capability.request"
2440
+ },
2441
+ "id": {
2442
+ "type": "string"
2443
+ },
2444
+ "session": {
2445
+ "type": "string"
2446
+ },
2447
+ "name": {
2448
+ "const": "snippet.create"
2449
+ },
2450
+ "params": {
2451
+ "$ref": "#/$defs/capabilities.snippet.create/params"
2452
+ }
2453
+ },
2454
+ "required": [
2455
+ "type",
2456
+ "id",
2457
+ "session",
2458
+ "name"
2459
+ ],
2460
+ "additionalProperties": false
2461
+ },
2462
+ {
2463
+ "type": "object",
2464
+ "properties": {
2465
+ "type": {
2466
+ "const": "capability.request"
2467
+ },
2468
+ "id": {
2469
+ "type": "string"
2470
+ },
2471
+ "session": {
2472
+ "type": "string"
2473
+ },
2474
+ "name": {
2475
+ "const": "quicklink.create"
2476
+ },
2477
+ "params": {
2478
+ "$ref": "#/$defs/capabilities.quicklink.create/params"
2479
+ }
2480
+ },
2481
+ "required": [
2482
+ "type",
2483
+ "id",
2484
+ "session",
2485
+ "name"
2486
+ ],
2487
+ "additionalProperties": false
2488
+ },
2489
+ {
2490
+ "type": "object",
2491
+ "properties": {
2492
+ "type": {
2493
+ "const": "capability.request"
2494
+ },
2495
+ "id": {
2496
+ "type": "string"
2497
+ },
2498
+ "session": {
2499
+ "type": "string"
2500
+ },
2501
+ "name": {
2502
+ "const": "quicklook.toggle"
2503
+ },
2504
+ "params": {
2505
+ "$ref": "#/$defs/capabilities.quicklook.toggle/params"
2506
+ }
2507
+ },
2508
+ "required": [
2509
+ "type",
2510
+ "id",
2511
+ "session",
2512
+ "name"
2513
+ ],
2514
+ "additionalProperties": false
2515
+ },
2516
+ {
2517
+ "type": "object",
2518
+ "properties": {
2519
+ "type": {
2520
+ "const": "capability.request"
2521
+ },
2522
+ "id": {
2523
+ "type": "string"
2524
+ },
2525
+ "session": {
2526
+ "type": "string"
2527
+ },
2528
+ "name": {
2529
+ "const": "mcp.install"
2530
+ },
2531
+ "params": {
2532
+ "$ref": "#/$defs/capabilities.mcp.install/params"
2533
+ }
2534
+ },
2535
+ "required": [
2536
+ "type",
2537
+ "id",
2538
+ "session",
2539
+ "name"
2540
+ ],
2541
+ "additionalProperties": false
2542
+ }
2543
+ ]
2544
+ },
2545
+ "server.capability.cancel": {
2546
+ "type": "object",
2547
+ "properties": {
2548
+ "type": {
2549
+ "const": "capability.cancel"
2550
+ },
2551
+ "id": {
2552
+ "type": "string"
2553
+ }
2554
+ },
2555
+ "required": [
2556
+ "type",
2557
+ "id"
2558
+ ],
2559
+ "additionalProperties": false
2560
+ },
2561
+ "serverMessages": {
2562
+ "oneOf": [
2563
+ {
2564
+ "$ref": "#/$defs/server.welcome"
2565
+ },
2566
+ {
2567
+ "$ref": "#/$defs/server.error"
2568
+ },
2569
+ {
2570
+ "$ref": "#/$defs/response"
2571
+ },
2572
+ {
2573
+ "$ref": "#/$defs/server.event"
2574
+ },
2575
+ {
2576
+ "$ref": "#/$defs/server.capability.request"
2577
+ },
2578
+ {
2579
+ "$ref": "#/$defs/server.capability.cancel"
2580
+ }
2581
+ ]
2582
+ },
2583
+ "capabilities.storage.get": {
2584
+ "scope": "session",
2585
+ "summary": "Reads a LocalStorage or internal storage key.",
2586
+ "params": {
2587
+ "type": "object",
2588
+ "properties": {
2589
+ "key": {
2590
+ "type": "string"
2591
+ },
2592
+ "scope": {
2593
+ "type": "string",
2594
+ "enum": [
2595
+ "blast:internal"
2596
+ ]
2597
+ }
2598
+ },
2599
+ "required": [
2600
+ "key"
2601
+ ]
2602
+ },
2603
+ "result": {
2604
+ "type": [
2605
+ "string",
2606
+ "number",
2607
+ "boolean",
2608
+ "null"
2609
+ ]
2610
+ },
2611
+ "api": [
2612
+ "LocalStorage.getItem",
2613
+ "getLocalStorageItem",
2614
+ "Form.TextField.Props.storeValue",
2615
+ "Form.Dropdown.Props.storeValue",
2616
+ "List.Dropdown.Props.storeValue",
2617
+ "Grid.Dropdown.Props.storeValue"
2618
+ ]
2619
+ },
2620
+ "capabilities.storage.set": {
2621
+ "scope": "session",
2622
+ "summary": "Writes a LocalStorage or internal storage key.",
2623
+ "params": {
2624
+ "type": "object",
2625
+ "properties": {
2626
+ "key": {
2627
+ "type": "string"
2628
+ },
2629
+ "value": {
2630
+ "type": [
2631
+ "string",
2632
+ "number",
2633
+ "boolean"
2634
+ ]
2635
+ },
2636
+ "scope": {
2637
+ "type": "string",
2638
+ "enum": [
2639
+ "blast:internal"
2640
+ ]
2641
+ }
2642
+ },
2643
+ "required": [
2644
+ "key",
2645
+ "value"
2646
+ ]
2647
+ },
2648
+ "result": {
2649
+ "type": "null"
2650
+ },
2651
+ "api": [
2652
+ "LocalStorage.setItem",
2653
+ "setLocalStorageItem",
2654
+ "Form.TextField.Props.storeValue",
2655
+ "Form.Dropdown.Props.storeValue",
2656
+ "List.Dropdown.Props.storeValue",
2657
+ "Grid.Dropdown.Props.storeValue"
2658
+ ]
2659
+ },
2660
+ "capabilities.storage.remove": {
2661
+ "scope": "session",
2662
+ "summary": "Removes a LocalStorage, internal storage or form draft key.",
2663
+ "params": {
2664
+ "type": "object",
2665
+ "properties": {
2666
+ "key": {
2667
+ "type": "string"
2668
+ },
2669
+ "scope": {
2670
+ "type": "string",
2671
+ "enum": [
2672
+ "blast:internal"
2673
+ ]
2674
+ }
2675
+ },
2676
+ "required": [
2677
+ "key"
2678
+ ]
2679
+ },
2680
+ "result": {
2681
+ "type": "null"
2682
+ },
2683
+ "api": [
2684
+ "LocalStorage.removeItem",
2685
+ "removeLocalStorageItem",
2686
+ "Form.TextField.Props.storeValue",
2687
+ "Form.Dropdown.Props.storeValue",
2688
+ "List.Dropdown.Props.storeValue",
2689
+ "Grid.Dropdown.Props.storeValue"
2690
+ ]
2691
+ },
2692
+ "capabilities.storage.all": {
2693
+ "scope": "session",
2694
+ "summary": "Reads every LocalStorage entry for the extension.",
2695
+ "params": {
2696
+ "type": "object",
2697
+ "properties": {}
2698
+ },
2699
+ "result": {
2700
+ "type": "object"
2701
+ },
2702
+ "api": [
2703
+ "LocalStorage.allItems",
2704
+ "allLocalStorageItems"
2705
+ ]
2706
+ },
2707
+ "capabilities.storage.clear": {
2708
+ "scope": "session",
2709
+ "summary": "Clears every LocalStorage entry for the extension.",
2710
+ "params": {
2711
+ "type": "object",
2712
+ "properties": {}
2713
+ },
2714
+ "result": {
2715
+ "type": "null"
2716
+ },
2717
+ "api": [
2718
+ "LocalStorage.clear",
2719
+ "clearLocalStorage"
2720
+ ]
2721
+ },
2722
+ "capabilities.oauth.tokens.get": {
2723
+ "scope": "session",
2724
+ "summary": "Reads the stored OAuth token set for a provider.",
2725
+ "params": {
2726
+ "type": "object",
2727
+ "properties": {
2728
+ "providerId": {
2729
+ "type": "string"
2730
+ }
2731
+ },
2732
+ "required": [
2733
+ "providerId"
2734
+ ]
2735
+ },
2736
+ "result": {
2737
+ "type": [
2738
+ "object",
2739
+ "null"
2740
+ ],
2741
+ "properties": {
2742
+ "accessToken": {
2743
+ "type": "string"
2744
+ },
2745
+ "refreshToken": {
2746
+ "type": "string"
2747
+ },
2748
+ "idToken": {
2749
+ "type": "string"
2750
+ },
2751
+ "expiresIn": {
2752
+ "type": "number"
2753
+ },
2754
+ "scope": {
2755
+ "type": [
2756
+ "string",
2757
+ "array"
2758
+ ],
2759
+ "items": {
2760
+ "type": "string"
2761
+ }
2762
+ },
2763
+ "revocationEndpoint": {
2764
+ "type": "string"
2765
+ }
2766
+ }
2767
+ },
2768
+ "api": [
2769
+ "OAuth.PKCEClient.getTokens"
2770
+ ]
2771
+ },
2772
+ "capabilities.oauth.tokens.set": {
2773
+ "scope": "session",
2774
+ "summary": "Stores an OAuth token set for a provider.",
2775
+ "params": {
2776
+ "type": "object",
2777
+ "properties": {
2778
+ "providerId": {
2779
+ "type": "string"
2780
+ },
2781
+ "tokens": {
2782
+ "type": "object",
2783
+ "properties": {
2784
+ "accessToken": {
2785
+ "type": "string"
2786
+ },
2787
+ "refreshToken": {
2788
+ "type": "string"
2789
+ },
2790
+ "idToken": {
2791
+ "type": "string"
2792
+ },
2793
+ "expiresIn": {
2794
+ "type": "number"
2795
+ },
2796
+ "scope": {
2797
+ "type": [
2798
+ "string",
2799
+ "array"
2800
+ ],
2801
+ "items": {
2802
+ "type": "string"
2803
+ }
2804
+ },
2805
+ "revocationEndpoint": {
2806
+ "type": "string"
2807
+ }
2808
+ },
2809
+ "required": [
2810
+ "accessToken"
2811
+ ]
2812
+ }
2813
+ },
2814
+ "required": [
2815
+ "providerId",
2816
+ "tokens"
2817
+ ]
2818
+ },
2819
+ "result": {
2820
+ "type": "null"
2821
+ },
2822
+ "api": [
2823
+ "OAuth.PKCEClient.setTokens"
2824
+ ]
2825
+ },
2826
+ "capabilities.oauth.tokens.remove": {
2827
+ "scope": "session",
2828
+ "summary": "Removes the stored OAuth token set for a provider.",
2829
+ "params": {
2830
+ "type": "object",
2831
+ "properties": {
2832
+ "providerId": {
2833
+ "type": "string"
2834
+ }
2835
+ },
2836
+ "required": [
2837
+ "providerId"
2838
+ ]
2839
+ },
2840
+ "result": {
2841
+ "type": "null"
2842
+ },
2843
+ "api": [
2844
+ "OAuth.PKCEClient.removeTokens"
2845
+ ]
2846
+ },
2847
+ "capabilities.oauth.authorize": {
2848
+ "scope": "grant",
2849
+ "summary": "Asks the client to run an OAuth authorization flow and return a code.",
2850
+ "params": {
2851
+ "type": "object",
2852
+ "properties": {
2853
+ "url": {
2854
+ "type": "string"
2855
+ },
2856
+ "providerName": {
2857
+ "type": "string"
2858
+ },
2859
+ "providerId": {
2860
+ "type": "string"
2861
+ },
2862
+ "redirectMethod": {
2863
+ "type": "string"
2864
+ },
2865
+ "providerIcon": {
2866
+ "type": "string"
2867
+ },
2868
+ "description": {
2869
+ "type": "string"
2870
+ }
2871
+ },
2872
+ "required": [
2873
+ "url",
2874
+ "providerName",
2875
+ "providerId",
2876
+ "redirectMethod"
2877
+ ]
2878
+ },
2879
+ "result": {
2880
+ "type": "object",
2881
+ "properties": {
2882
+ "authorizationCode": {
2883
+ "type": "string"
2884
+ }
2885
+ },
2886
+ "required": [
2887
+ "authorizationCode"
2888
+ ]
2889
+ },
2890
+ "api": [
2891
+ "OAuth.PKCEClient.authorize"
2892
+ ]
2893
+ },
2894
+ "capabilities.ai.ask": {
2895
+ "scope": "grant",
2896
+ "summary": "Asks an AI model for text; own-provider `{ id }` models are answered by the engine.",
2897
+ "params": {
2898
+ "type": "object",
2899
+ "properties": {
2900
+ "prompt": {
2901
+ "type": "string"
2902
+ },
2903
+ "model": {
2904
+ "type": [
2905
+ "string",
2906
+ "object"
2907
+ ],
2908
+ "properties": {
2909
+ "id": {
2910
+ "type": "string"
2911
+ }
2912
+ }
2913
+ },
2914
+ "creativity": {
2915
+ "type": [
2916
+ "string",
2917
+ "number"
2918
+ ]
2919
+ }
2920
+ },
2921
+ "required": [
2922
+ "prompt"
2923
+ ]
2924
+ },
2925
+ "result": {
2926
+ "type": "string"
2927
+ },
2928
+ "api": [
2929
+ "AI.ask"
2930
+ ]
2931
+ },
2932
+ "capabilities.ai.models.refresh": {
2933
+ "scope": "session",
2934
+ "summary": "Re-lists the extension's own AI provider models.",
2935
+ "params": {
2936
+ "type": "object",
2937
+ "properties": {}
2938
+ },
2939
+ "result": {
2940
+ "type": "null"
2941
+ },
2942
+ "api": [
2943
+ "AI.refreshModels"
2944
+ ]
2945
+ },
2946
+ "capabilities.ai.decide": {
2947
+ "scope": "grant",
2948
+ "summary": "Asks a client for typed answers to experimental decision questions.",
2949
+ "params": {
2950
+ "type": "object",
2951
+ "properties": {
2952
+ "state": {
2953
+ "type": "string"
2954
+ },
2955
+ "questions": {
2956
+ "type": "object",
2957
+ "properties": {
2958
+ "type": {
2959
+ "type": "string",
2960
+ "enum": [
2961
+ "noul",
2962
+ "score",
2963
+ "choice"
2964
+ ]
2965
+ },
2966
+ "instructions": {
2967
+ "type": "string"
2968
+ },
2969
+ "criteria": {
2970
+ "type": [
2971
+ "array",
2972
+ "object"
2973
+ ]
2974
+ }
2975
+ },
2976
+ "required": [
2977
+ "type",
2978
+ "instructions"
2979
+ ]
2980
+ }
2981
+ },
2982
+ "required": [
2983
+ "state",
2984
+ "questions"
2985
+ ]
2986
+ },
2987
+ "result": {
2988
+ "type": "object"
2989
+ },
2990
+ "api": [
2991
+ "AI.experimental_decide"
2992
+ ]
2993
+ },
2994
+ "capabilities.browser.tabs": {
2995
+ "scope": "grant",
2996
+ "summary": "Lists the browser tabs a client chooses to expose.",
2997
+ "params": {
2998
+ "type": "object",
2999
+ "properties": {}
3000
+ },
3001
+ "result": {
3002
+ "type": "array",
3003
+ "items": {
3004
+ "type": "object",
3005
+ "properties": {
3006
+ "id": {
3007
+ "type": "number"
3008
+ },
3009
+ "url": {
3010
+ "type": "string"
3011
+ },
3012
+ "title": {
3013
+ "type": "string"
3014
+ },
3015
+ "favicon": {
3016
+ "type": "string"
3017
+ },
3018
+ "active": {
3019
+ "type": "boolean"
3020
+ }
3021
+ },
3022
+ "required": [
3023
+ "id",
3024
+ "url",
3025
+ "active"
3026
+ ]
3027
+ }
3028
+ },
3029
+ "api": [
3030
+ "BrowserExtension.getTabs"
3031
+ ]
3032
+ },
3033
+ "capabilities.browser.content": {
3034
+ "scope": "grant",
3035
+ "summary": "Returns the content of a browser tab.",
3036
+ "params": {
3037
+ "type": "object",
3038
+ "properties": {
3039
+ "cssSelector": {
3040
+ "type": "string"
3041
+ },
3042
+ "tabId": {
3043
+ "type": "number"
3044
+ },
3045
+ "format": {
3046
+ "type": "string",
3047
+ "enum": [
3048
+ "html",
3049
+ "text",
3050
+ "markdown"
3051
+ ]
3052
+ }
3053
+ }
3054
+ },
3055
+ "result": {
3056
+ "type": "string"
3057
+ },
3058
+ "api": [
3059
+ "BrowserExtension.getContent"
3060
+ ]
3061
+ },
3062
+ "capabilities.clipboard.copy": {
3063
+ "scope": "grant",
3064
+ "summary": "Copies text, HTML or a file path to the clipboard.",
3065
+ "params": {
3066
+ "type": "object",
3067
+ "properties": {
3068
+ "text": {
3069
+ "type": "string"
3070
+ },
3071
+ "file": {
3072
+ "type": "string"
3073
+ },
3074
+ "html": {
3075
+ "type": "string"
3076
+ },
3077
+ "concealed": {
3078
+ "type": "boolean"
3079
+ },
3080
+ "closeMainWindow": {
3081
+ "type": "boolean"
3082
+ },
3083
+ "transient": {
3084
+ "type": "boolean"
3085
+ }
3086
+ }
3087
+ },
3088
+ "result": {
3089
+ "type": "null"
3090
+ },
3091
+ "api": [
3092
+ "Clipboard.copy",
3093
+ "Action.CopyToClipboard",
3094
+ "ActionPanel.Item.CopyToClipboard"
3095
+ ]
3096
+ },
3097
+ "capabilities.clipboard.clear": {
3098
+ "scope": "grant",
3099
+ "summary": "Clears the clipboard.",
3100
+ "params": {
3101
+ "type": "object",
3102
+ "properties": {}
3103
+ },
3104
+ "result": {
3105
+ "type": "null"
3106
+ },
3107
+ "api": [
3108
+ "Clipboard.clear"
3109
+ ]
3110
+ },
3111
+ "capabilities.clipboard.paste": {
3112
+ "scope": "grant",
3113
+ "summary": "Pastes text, HTML or a file path into the frontmost application.",
3114
+ "params": {
3115
+ "type": "object",
3116
+ "properties": {
3117
+ "text": {
3118
+ "type": "string"
3119
+ },
3120
+ "file": {
3121
+ "type": "string"
3122
+ },
3123
+ "html": {
3124
+ "type": "string"
3125
+ },
3126
+ "concealed": {
3127
+ "type": "boolean"
3128
+ },
3129
+ "closeMainWindow": {
3130
+ "type": "boolean"
3131
+ }
3132
+ }
3133
+ },
3134
+ "result": {
3135
+ "type": "null"
3136
+ },
3137
+ "api": [
3138
+ "Clipboard.paste",
3139
+ "Action.Paste",
3140
+ "ActionPanel.Item.Paste"
3141
+ ]
3142
+ },
3143
+ "capabilities.clipboard.read": {
3144
+ "scope": "grant",
3145
+ "summary": "Reads the clipboard, optionally at a history offset.",
3146
+ "params": {
3147
+ "type": "object",
3148
+ "properties": {
3149
+ "offset": {
3150
+ "type": "integer",
3151
+ "enum": [
3152
+ 0,
3153
+ 1,
3154
+ 2,
3155
+ 3,
3156
+ 4,
3157
+ 5
3158
+ ]
3159
+ }
3160
+ }
3161
+ },
3162
+ "result": {
3163
+ "type": "object",
3164
+ "properties": {
3165
+ "text": {
3166
+ "type": "string"
3167
+ },
3168
+ "file": {
3169
+ "type": "string"
3170
+ },
3171
+ "html": {
3172
+ "type": "string"
3173
+ }
3174
+ },
3175
+ "required": [
3176
+ "text"
3177
+ ]
3178
+ },
3179
+ "api": [
3180
+ "Clipboard.read",
3181
+ "Clipboard.readText"
3182
+ ]
3183
+ },
3184
+ "capabilities.open.url": {
3185
+ "scope": "grant",
3186
+ "summary": "Opens an HTTP(S) URL, optionally with a named application.",
3187
+ "params": {
3188
+ "type": "object",
3189
+ "properties": {
3190
+ "url": {
3191
+ "type": "string"
3192
+ },
3193
+ "application": {
3194
+ "type": [
3195
+ "string",
3196
+ "object"
3197
+ ]
3198
+ }
3199
+ },
3200
+ "required": [
3201
+ "url"
3202
+ ]
3203
+ },
3204
+ "result": {
3205
+ "type": "null"
3206
+ },
3207
+ "api": [
3208
+ "open",
3209
+ "Action.Open",
3210
+ "Action.OpenWith",
3211
+ "Action.OpenInBrowser"
3212
+ ]
3213
+ },
3214
+ "capabilities.open.path": {
3215
+ "scope": "grant",
3216
+ "summary": "Opens a file or folder, optionally with a named application.",
3217
+ "params": {
3218
+ "type": "object",
3219
+ "properties": {
3220
+ "path": {
3221
+ "type": "string"
3222
+ },
3223
+ "application": {
3224
+ "type": [
3225
+ "string",
3226
+ "object"
3227
+ ]
3228
+ }
3229
+ },
3230
+ "required": [
3231
+ "path"
3232
+ ]
3233
+ },
3234
+ "result": {
3235
+ "type": "null"
3236
+ },
3237
+ "api": [
3238
+ "open",
3239
+ "Action.Open",
3240
+ "Action.OpenWith"
3241
+ ]
3242
+ },
3243
+ "capabilities.selection.text": {
3244
+ "scope": "grant",
3245
+ "summary": "Returns the selected text; an empty string means nothing is selected.",
3246
+ "params": {
3247
+ "type": "object",
3248
+ "properties": {}
3249
+ },
3250
+ "result": {
3251
+ "type": "string"
3252
+ },
3253
+ "api": [
3254
+ "getSelectedText"
3255
+ ]
3256
+ },
3257
+ "capabilities.selection.files": {
3258
+ "scope": "grant",
3259
+ "summary": "Returns the selected file-system items.",
3260
+ "params": {
3261
+ "type": "object",
3262
+ "properties": {}
3263
+ },
3264
+ "result": {
3265
+ "type": "array",
3266
+ "items": {
3267
+ "type": "object",
3268
+ "properties": {
3269
+ "path": {
3270
+ "type": "string"
3271
+ }
3272
+ }
3273
+ }
3274
+ },
3275
+ "api": [
3276
+ "getSelectedFinderItems"
3277
+ ]
3278
+ },
3279
+ "capabilities.applications.frontmost": {
3280
+ "scope": "grant",
3281
+ "summary": "Returns the frontmost application.",
3282
+ "params": {
3283
+ "type": "object",
3284
+ "properties": {}
3285
+ },
3286
+ "result": {
3287
+ "type": "object",
3288
+ "properties": {
3289
+ "name": {
3290
+ "type": "string"
3291
+ },
3292
+ "localizedName": {
3293
+ "type": "string"
3294
+ },
3295
+ "path": {
3296
+ "type": "string"
3297
+ },
3298
+ "bundleId": {
3299
+ "type": "string"
3300
+ },
3301
+ "windowsAppId": {
3302
+ "type": "string"
3303
+ }
3304
+ },
3305
+ "required": [
3306
+ "name",
3307
+ "path"
3308
+ ]
3309
+ },
3310
+ "api": [
3311
+ "getFrontmostApplication"
3312
+ ]
3313
+ },
3314
+ "capabilities.applications.list": {
3315
+ "scope": "grant",
3316
+ "summary": "Lists installed applications, optionally filtered by path.",
3317
+ "params": {
3318
+ "type": "object",
3319
+ "properties": {
3320
+ "path": {
3321
+ "type": "string"
3322
+ }
3323
+ }
3324
+ },
3325
+ "result": {
3326
+ "type": "array",
3327
+ "items": {
3328
+ "type": "object",
3329
+ "properties": {
3330
+ "name": {
3331
+ "type": "string"
3332
+ },
3333
+ "localizedName": {
3334
+ "type": "string"
3335
+ },
3336
+ "path": {
3337
+ "type": "string"
3338
+ },
3339
+ "bundleId": {
3340
+ "type": "string"
3341
+ },
3342
+ "windowsAppId": {
3343
+ "type": "string"
3344
+ }
3345
+ },
3346
+ "required": [
3347
+ "name",
3348
+ "path"
3349
+ ]
3350
+ }
3351
+ },
3352
+ "api": [
3353
+ "getApplications"
3354
+ ]
3355
+ },
3356
+ "capabilities.applications.default": {
3357
+ "scope": "grant",
3358
+ "summary": "Returns the application the machine would open a path with.",
3359
+ "params": {
3360
+ "type": "object",
3361
+ "properties": {
3362
+ "path": {
3363
+ "type": "string"
3364
+ }
3365
+ },
3366
+ "required": [
3367
+ "path"
3368
+ ]
3369
+ },
3370
+ "result": {
3371
+ "type": "object",
3372
+ "properties": {
3373
+ "name": {
3374
+ "type": "string"
3375
+ },
3376
+ "localizedName": {
3377
+ "type": "string"
3378
+ },
3379
+ "path": {
3380
+ "type": "string"
3381
+ },
3382
+ "bundleId": {
3383
+ "type": "string"
3384
+ },
3385
+ "windowsAppId": {
3386
+ "type": "string"
3387
+ }
3388
+ },
3389
+ "required": [
3390
+ "name",
3391
+ "path"
3392
+ ]
3393
+ },
3394
+ "api": [
3395
+ "getDefaultApplication"
3396
+ ]
3397
+ },
3398
+ "capabilities.finder.show": {
3399
+ "scope": "grant",
3400
+ "summary": "Reveals a file or folder in the file manager.",
3401
+ "params": {
3402
+ "type": "object",
3403
+ "properties": {
3404
+ "path": {
3405
+ "type": "string"
3406
+ }
3407
+ },
3408
+ "required": [
3409
+ "path"
3410
+ ]
3411
+ },
3412
+ "result": {
3413
+ "type": "null"
3414
+ },
3415
+ "api": [
3416
+ "showInFinder",
3417
+ "Action.ShowInFinder"
3418
+ ]
3419
+ },
3420
+ "capabilities.trash": {
3421
+ "scope": "grant",
3422
+ "summary": "Moves files or folders to the trash.",
3423
+ "params": {
3424
+ "type": "object",
3425
+ "properties": {
3426
+ "paths": {
3427
+ "type": "array",
3428
+ "items": {
3429
+ "type": "string"
3430
+ }
3431
+ }
3432
+ },
3433
+ "required": [
3434
+ "paths"
3435
+ ]
3436
+ },
3437
+ "result": {
3438
+ "type": "null"
3439
+ },
3440
+ "api": [
3441
+ "trash",
3442
+ "Action.Trash"
3443
+ ]
3444
+ },
3445
+ "capabilities.window.desktops": {
3446
+ "scope": "grant",
3447
+ "summary": "Lists desktops across all screens.",
3448
+ "params": {
3449
+ "type": "object",
3450
+ "properties": {}
3451
+ },
3452
+ "result": {
3453
+ "type": "array",
3454
+ "items": {
3455
+ "type": "object",
3456
+ "properties": {
3457
+ "size": {
3458
+ "type": "object",
3459
+ "properties": {
3460
+ "width": {
3461
+ "type": "number"
3462
+ },
3463
+ "height": {
3464
+ "type": "number"
3465
+ }
3466
+ },
3467
+ "required": [
3468
+ "width",
3469
+ "height"
3470
+ ]
3471
+ },
3472
+ "id": {
3473
+ "type": "string"
3474
+ },
3475
+ "screenId": {
3476
+ "type": "string"
3477
+ },
3478
+ "active": {
3479
+ "type": "boolean"
3480
+ },
3481
+ "type": {
3482
+ "type": "string",
3483
+ "enum": [
3484
+ "User",
3485
+ "FullScreen"
3486
+ ]
3487
+ }
3488
+ },
3489
+ "required": [
3490
+ "size",
3491
+ "id",
3492
+ "screenId",
3493
+ "active",
3494
+ "type"
3495
+ ]
3496
+ }
3497
+ },
3498
+ "api": [
3499
+ "WindowManagement.getDesktops"
3500
+ ]
3501
+ },
3502
+ "capabilities.window.active": {
3503
+ "scope": "grant",
3504
+ "summary": "Returns the active window.",
3505
+ "params": {
3506
+ "type": "object",
3507
+ "properties": {}
3508
+ },
3509
+ "result": {
3510
+ "type": "object",
3511
+ "properties": {
3512
+ "id": {
3513
+ "type": "string"
3514
+ },
3515
+ "application": {
3516
+ "type": "object",
3517
+ "properties": {
3518
+ "name": {
3519
+ "type": "string"
3520
+ },
3521
+ "localizedName": {
3522
+ "type": "string"
3523
+ },
3524
+ "path": {
3525
+ "type": "string"
3526
+ },
3527
+ "bundleId": {
3528
+ "type": "string"
3529
+ },
3530
+ "windowsAppId": {
3531
+ "type": "string"
3532
+ }
3533
+ },
3534
+ "required": [
3535
+ "name",
3536
+ "path"
3537
+ ]
3538
+ },
3539
+ "bounds": {
3540
+ "type": [
3541
+ "object",
3542
+ "string"
3543
+ ]
3544
+ },
3545
+ "desktopId": {
3546
+ "type": "string"
3547
+ },
3548
+ "fullScreenSettable": {
3549
+ "type": "boolean"
3550
+ },
3551
+ "resizable": {
3552
+ "type": "boolean"
3553
+ },
3554
+ "positionable": {
3555
+ "type": "boolean"
3556
+ },
3557
+ "active": {
3558
+ "type": "boolean"
3559
+ }
3560
+ },
3561
+ "required": [
3562
+ "id",
3563
+ "bounds",
3564
+ "desktopId",
3565
+ "fullScreenSettable",
3566
+ "resizable",
3567
+ "positionable",
3568
+ "active"
3569
+ ]
3570
+ },
3571
+ "api": [
3572
+ "WindowManagement.getActiveWindow"
3573
+ ]
3574
+ },
3575
+ "capabilities.window.list": {
3576
+ "scope": "grant",
3577
+ "summary": "Lists the windows on the active desktop.",
3578
+ "params": {
3579
+ "type": "object",
3580
+ "properties": {}
3581
+ },
3582
+ "result": {
3583
+ "type": "array",
3584
+ "items": {
3585
+ "type": "object",
3586
+ "properties": {
3587
+ "id": {
3588
+ "type": "string"
3589
+ },
3590
+ "application": {
3591
+ "type": "object",
3592
+ "properties": {
3593
+ "name": {
3594
+ "type": "string"
3595
+ },
3596
+ "localizedName": {
3597
+ "type": "string"
3598
+ },
3599
+ "path": {
3600
+ "type": "string"
3601
+ },
3602
+ "bundleId": {
3603
+ "type": "string"
3604
+ },
3605
+ "windowsAppId": {
3606
+ "type": "string"
3607
+ }
3608
+ },
3609
+ "required": [
3610
+ "name",
3611
+ "path"
3612
+ ]
3613
+ },
3614
+ "bounds": {
3615
+ "type": [
3616
+ "object",
3617
+ "string"
3618
+ ]
3619
+ },
3620
+ "desktopId": {
3621
+ "type": "string"
3622
+ },
3623
+ "fullScreenSettable": {
3624
+ "type": "boolean"
3625
+ },
3626
+ "resizable": {
3627
+ "type": "boolean"
3628
+ },
3629
+ "positionable": {
3630
+ "type": "boolean"
3631
+ },
3632
+ "active": {
3633
+ "type": "boolean"
3634
+ }
3635
+ },
3636
+ "required": [
3637
+ "id",
3638
+ "bounds",
3639
+ "desktopId",
3640
+ "fullScreenSettable",
3641
+ "resizable",
3642
+ "positionable",
3643
+ "active"
3644
+ ]
3645
+ }
3646
+ },
3647
+ "api": [
3648
+ "WindowManagement.getWindowsOnActiveDesktop"
3649
+ ]
3650
+ },
3651
+ "capabilities.window.setBounds": {
3652
+ "scope": "grant",
3653
+ "summary": "Moves, resizes or makes a window fullscreen.",
3654
+ "params": {
3655
+ "type": "object",
3656
+ "properties": {
3657
+ "id": {
3658
+ "type": "string"
3659
+ },
3660
+ "bounds": {
3661
+ "type": [
3662
+ "object",
3663
+ "string"
3664
+ ]
3665
+ },
3666
+ "desktopId": {
3667
+ "type": "string"
3668
+ }
3669
+ },
3670
+ "required": [
3671
+ "id",
3672
+ "bounds"
3673
+ ]
3674
+ },
3675
+ "result": {
3676
+ "type": "null"
3677
+ },
3678
+ "api": [
3679
+ "WindowManagement.setWindowBounds"
3680
+ ]
3681
+ },
3682
+ "capabilities.preferences.open": {
3683
+ "scope": "grant",
3684
+ "summary": "Asks the client to open extension or command preferences.",
3685
+ "params": {
3686
+ "type": "object",
3687
+ "properties": {
3688
+ "scope": {
3689
+ "type": "string",
3690
+ "enum": [
3691
+ "extension",
3692
+ "command"
3693
+ ]
3694
+ }
3695
+ },
3696
+ "required": [
3697
+ "scope"
3698
+ ]
3699
+ },
3700
+ "result": {
3701
+ "type": "null"
3702
+ },
3703
+ "api": [
3704
+ "openExtensionPreferences",
3705
+ "openCommandPreferences"
3706
+ ]
3707
+ },
3708
+ "capabilities.command.launch": {
3709
+ "scope": "grant",
3710
+ "summary": "Launches another command, passing arguments and launch context.",
3711
+ "params": {
3712
+ "type": "object",
3713
+ "properties": {
3714
+ "name": {
3715
+ "type": "string"
3716
+ },
3717
+ "type": {
3718
+ "type": "string",
3719
+ "enum": [
3720
+ "userInitiated",
3721
+ "background"
3722
+ ]
3723
+ },
3724
+ "extensionName": {
3725
+ "type": "string"
3726
+ },
3727
+ "ownerOrAuthorName": {
3728
+ "type": "string"
3729
+ },
3730
+ "arguments": {
3731
+ "type": "object"
3732
+ },
3733
+ "context": {
3734
+ "type": "object"
3735
+ },
3736
+ "fallbackText": {
3737
+ "type": "string"
3738
+ }
3739
+ },
3740
+ "required": [
3741
+ "name",
3742
+ "type"
3743
+ ]
3744
+ },
3745
+ "result": {
3746
+ "type": "null"
3747
+ },
3748
+ "api": [
3749
+ "launchCommand"
3750
+ ]
3751
+ },
3752
+ "capabilities.command.metadata": {
3753
+ "scope": "grant",
3754
+ "summary": "Updates the command's subtitle in the client.",
3755
+ "params": {
3756
+ "type": "object",
3757
+ "properties": {
3758
+ "subtitle": {
3759
+ "type": [
3760
+ "string",
3761
+ "null"
3762
+ ]
3763
+ }
3764
+ }
3765
+ },
3766
+ "result": {
3767
+ "type": "null"
3768
+ },
3769
+ "api": [
3770
+ "updateCommandMetadata"
3771
+ ]
3772
+ },
3773
+ "capabilities.snippet.create": {
3774
+ "scope": "grant",
3775
+ "summary": "Creates a snippet from text, a name and a keyword.",
3776
+ "params": {
3777
+ "type": "object",
3778
+ "properties": {
3779
+ "text": {
3780
+ "type": "string"
3781
+ },
3782
+ "name": {
3783
+ "type": "string"
3784
+ },
3785
+ "keyword": {
3786
+ "type": "string"
3787
+ }
3788
+ },
3789
+ "required": [
3790
+ "text"
3791
+ ]
3792
+ },
3793
+ "result": {
3794
+ "type": "null"
3795
+ },
3796
+ "api": [
3797
+ "Action.CreateSnippet"
3798
+ ]
3799
+ },
3800
+ "capabilities.quicklink.create": {
3801
+ "scope": "grant",
3802
+ "summary": "Creates a quicklink from a link and optional metadata.",
3803
+ "params": {
3804
+ "type": "object",
3805
+ "properties": {
3806
+ "link": {
3807
+ "type": "string"
3808
+ },
3809
+ "name": {
3810
+ "type": "string"
3811
+ },
3812
+ "icon": {
3813
+ "type": "string"
3814
+ },
3815
+ "application": {
3816
+ "type": [
3817
+ "string",
3818
+ "object"
3819
+ ]
3820
+ }
3821
+ },
3822
+ "required": [
3823
+ "link"
3824
+ ]
3825
+ },
3826
+ "result": {
3827
+ "type": "null"
3828
+ },
3829
+ "api": [
3830
+ "Action.CreateQuicklink"
3831
+ ]
3832
+ },
3833
+ "capabilities.quicklook.toggle": {
3834
+ "scope": "grant",
3835
+ "summary": "Toggles Quick Look for the client's selected item.",
3836
+ "params": {
3837
+ "type": "object",
3838
+ "properties": {}
3839
+ },
3840
+ "result": {
3841
+ "type": "null"
3842
+ },
3843
+ "api": [
3844
+ "Action.ToggleQuickLook"
3845
+ ]
3846
+ },
3847
+ "capabilities.mcp.install": {
3848
+ "scope": "grant",
3849
+ "summary": "Installs an MCP server descriptor.",
3850
+ "params": {
3851
+ "type": "object",
3852
+ "properties": {
3853
+ "server": {
3854
+ "type": "object",
3855
+ "properties": {
3856
+ "name": {
3857
+ "type": "string"
3858
+ },
3859
+ "transport": {
3860
+ "type": "string",
3861
+ "enum": [
3862
+ "stdio",
3863
+ "sse"
3864
+ ]
3865
+ },
3866
+ "icon": {
3867
+ "type": "string"
3868
+ },
3869
+ "description": {
3870
+ "type": "string"
3871
+ },
3872
+ "command": {
3873
+ "type": "string"
3874
+ },
3875
+ "args": {
3876
+ "type": "array",
3877
+ "items": {
3878
+ "type": "string"
3879
+ }
3880
+ },
3881
+ "env": {
3882
+ "type": "object"
3883
+ },
3884
+ "url": {
3885
+ "type": "string"
3886
+ },
3887
+ "headers": {
3888
+ "type": "object"
3889
+ }
3890
+ },
3891
+ "required": [
3892
+ "name",
3893
+ "transport"
3894
+ ]
3895
+ }
3896
+ },
3897
+ "required": [
3898
+ "server"
3899
+ ]
3900
+ },
3901
+ "result": {
3902
+ "type": "null"
3903
+ },
3904
+ "api": [
3905
+ "Action.InstallMCPServer"
3906
+ ]
3907
+ }
3908
+ }
3909
+ }