@blastlauncher/protocol 0.0.0-stage → 3.0.0-alpha.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.
package/LICENSE ADDED
@@ -0,0 +1,7 @@
1
+ Copyright 2023 Yukai Huang
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,5 @@
1
- # Temporary Holding Version
1
+ # @blastlauncher/protocol
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Blast's protocol package.
4
+ Emitted ESM and TypeScript declarations for Node.js 24.20+.
5
+ See https://github.com/BlastLauncher/blast for documentation.
@@ -0,0 +1,584 @@
1
+ /** `"session"` when the engine answers the capability itself, else `"grant"`. */
2
+ export type CapabilityScope = "session" | "grant";
3
+ export type CapabilitySchemaType = "object" | "array" | "string" | "number" | "integer" | "boolean" | "null";
4
+ /**
5
+ * The small JSON-Schema subset this catalog uses. It describes the wire shapes
6
+ * for embedders without pulling a schema library into the dependency-free
7
+ * protocol package.
8
+ */
9
+ export interface CapabilitySchema {
10
+ readonly type?: CapabilitySchemaType | readonly CapabilitySchemaType[];
11
+ readonly properties?: Readonly<Record<string, CapabilitySchema>>;
12
+ readonly required?: readonly string[];
13
+ readonly items?: CapabilitySchema;
14
+ readonly enum?: readonly (string | number | boolean | null)[];
15
+ }
16
+ export interface CapabilitySpec {
17
+ readonly scope: CapabilityScope;
18
+ /** One line describing what the capability does. */
19
+ readonly summary: string;
20
+ readonly params: CapabilitySchema;
21
+ readonly result: CapabilitySchema;
22
+ /** `@raycast/api` symbol paths that trigger the request. */
23
+ readonly api: readonly string[];
24
+ }
25
+ /**
26
+ * Every capability the runtime can request, keyed by wire name. Params and
27
+ * results are the shapes the runtime sends and accepts, not the full Raycast
28
+ * API types.
29
+ */
30
+ export declare const CAPABILITIES: {
31
+ readonly "storage.get": {
32
+ readonly scope: "session";
33
+ readonly summary: "Reads a LocalStorage or internal storage key.";
34
+ readonly params: {
35
+ readonly type: "object";
36
+ readonly properties: {
37
+ readonly key: CapabilitySchema;
38
+ readonly scope: {
39
+ readonly type: "string";
40
+ readonly enum: readonly ["blast:internal"];
41
+ };
42
+ };
43
+ readonly required: readonly ["key"];
44
+ };
45
+ readonly result: {
46
+ readonly type: readonly ["string", "number", "boolean", "null"];
47
+ };
48
+ readonly api: readonly ["LocalStorage.getItem", "getLocalStorageItem", "Form.TextField.Props.storeValue", "Form.Dropdown.Props.storeValue", "List.Dropdown.Props.storeValue", "Grid.Dropdown.Props.storeValue"];
49
+ };
50
+ readonly "storage.set": {
51
+ readonly scope: "session";
52
+ readonly summary: "Writes a LocalStorage or internal storage key.";
53
+ readonly params: {
54
+ readonly type: "object";
55
+ readonly properties: {
56
+ readonly key: CapabilitySchema;
57
+ readonly value: {
58
+ readonly type: readonly ["string", "number", "boolean"];
59
+ };
60
+ readonly scope: {
61
+ readonly type: "string";
62
+ readonly enum: readonly ["blast:internal"];
63
+ };
64
+ };
65
+ readonly required: readonly ["key", "value"];
66
+ };
67
+ readonly result: CapabilitySchema;
68
+ readonly api: readonly ["LocalStorage.setItem", "setLocalStorageItem", "Form.TextField.Props.storeValue", "Form.Dropdown.Props.storeValue", "List.Dropdown.Props.storeValue", "Grid.Dropdown.Props.storeValue"];
69
+ };
70
+ readonly "storage.remove": {
71
+ readonly scope: "session";
72
+ readonly summary: "Removes a LocalStorage, internal storage or form draft key.";
73
+ readonly params: {
74
+ readonly type: "object";
75
+ readonly properties: {
76
+ readonly key: CapabilitySchema;
77
+ readonly scope: {
78
+ readonly type: "string";
79
+ readonly enum: readonly ["blast:internal"];
80
+ };
81
+ };
82
+ readonly required: readonly ["key"];
83
+ };
84
+ readonly result: CapabilitySchema;
85
+ readonly api: readonly ["LocalStorage.removeItem", "removeLocalStorageItem", "Form.TextField.Props.storeValue", "Form.Dropdown.Props.storeValue", "List.Dropdown.Props.storeValue", "Grid.Dropdown.Props.storeValue"];
86
+ };
87
+ readonly "storage.all": {
88
+ readonly scope: "session";
89
+ readonly summary: "Reads every LocalStorage entry for the extension.";
90
+ readonly params: CapabilitySchema;
91
+ readonly result: CapabilitySchema;
92
+ readonly api: readonly ["LocalStorage.allItems", "allLocalStorageItems"];
93
+ };
94
+ readonly "storage.clear": {
95
+ readonly scope: "session";
96
+ readonly summary: "Clears every LocalStorage entry for the extension.";
97
+ readonly params: CapabilitySchema;
98
+ readonly result: CapabilitySchema;
99
+ readonly api: readonly ["LocalStorage.clear", "clearLocalStorage"];
100
+ };
101
+ readonly "oauth.tokens.get": {
102
+ readonly scope: "session";
103
+ readonly summary: "Reads the stored OAuth token set for a provider.";
104
+ readonly params: {
105
+ readonly type: "object";
106
+ readonly properties: {
107
+ readonly providerId: CapabilitySchema;
108
+ };
109
+ readonly required: readonly ["providerId"];
110
+ };
111
+ readonly result: {
112
+ readonly type: readonly ["object", "null"];
113
+ readonly properties: {
114
+ readonly accessToken: CapabilitySchema;
115
+ readonly refreshToken: CapabilitySchema;
116
+ readonly idToken: CapabilitySchema;
117
+ readonly expiresIn: CapabilitySchema;
118
+ readonly scope: {
119
+ readonly type: readonly ["string", "array"];
120
+ readonly items: CapabilitySchema;
121
+ };
122
+ readonly revocationEndpoint: CapabilitySchema;
123
+ };
124
+ };
125
+ readonly api: readonly ["OAuth.PKCEClient.getTokens"];
126
+ };
127
+ readonly "oauth.tokens.set": {
128
+ readonly scope: "session";
129
+ readonly summary: "Stores an OAuth token set for a provider.";
130
+ readonly params: {
131
+ readonly type: "object";
132
+ readonly properties: {
133
+ readonly providerId: CapabilitySchema;
134
+ readonly tokens: CapabilitySchema;
135
+ };
136
+ readonly required: readonly ["providerId", "tokens"];
137
+ };
138
+ readonly result: CapabilitySchema;
139
+ readonly api: readonly ["OAuth.PKCEClient.setTokens"];
140
+ };
141
+ readonly "oauth.tokens.remove": {
142
+ readonly scope: "session";
143
+ readonly summary: "Removes the stored OAuth token set for a provider.";
144
+ readonly params: {
145
+ readonly type: "object";
146
+ readonly properties: {
147
+ readonly providerId: CapabilitySchema;
148
+ };
149
+ readonly required: readonly ["providerId"];
150
+ };
151
+ readonly result: CapabilitySchema;
152
+ readonly api: readonly ["OAuth.PKCEClient.removeTokens"];
153
+ };
154
+ readonly "oauth.authorize": {
155
+ readonly scope: "grant";
156
+ readonly summary: "Asks the client to run an OAuth authorization flow and return a code.";
157
+ readonly params: {
158
+ readonly type: "object";
159
+ readonly properties: {
160
+ readonly url: CapabilitySchema;
161
+ readonly providerName: CapabilitySchema;
162
+ readonly providerId: CapabilitySchema;
163
+ readonly redirectMethod: {
164
+ readonly type: "string";
165
+ };
166
+ readonly providerIcon: CapabilitySchema;
167
+ readonly description: CapabilitySchema;
168
+ };
169
+ readonly required: readonly ["url", "providerName", "providerId", "redirectMethod"];
170
+ };
171
+ readonly result: {
172
+ readonly type: "object";
173
+ readonly properties: {
174
+ readonly authorizationCode: CapabilitySchema;
175
+ };
176
+ readonly required: readonly ["authorizationCode"];
177
+ };
178
+ readonly api: readonly ["OAuth.PKCEClient.authorize"];
179
+ };
180
+ readonly "ai.ask": {
181
+ readonly scope: "grant";
182
+ readonly summary: "Asks an AI model for text; own-provider `{ id }` models are answered by the engine.";
183
+ readonly params: {
184
+ readonly type: "object";
185
+ readonly properties: {
186
+ readonly prompt: CapabilitySchema;
187
+ readonly model: {
188
+ readonly type: readonly ["string", "object"];
189
+ readonly properties: {
190
+ readonly id: CapabilitySchema;
191
+ };
192
+ };
193
+ readonly creativity: {
194
+ readonly type: readonly ["string", "number"];
195
+ };
196
+ };
197
+ readonly required: readonly ["prompt"];
198
+ };
199
+ readonly result: CapabilitySchema;
200
+ readonly api: readonly ["AI.ask"];
201
+ };
202
+ readonly "ai.models.refresh": {
203
+ readonly scope: "session";
204
+ readonly summary: "Re-lists the extension's own AI provider models.";
205
+ readonly params: CapabilitySchema;
206
+ readonly result: CapabilitySchema;
207
+ readonly api: readonly ["AI.refreshModels"];
208
+ };
209
+ readonly "ai.decide": {
210
+ readonly scope: "grant";
211
+ readonly summary: "Asks a client for typed answers to experimental decision questions.";
212
+ readonly params: {
213
+ readonly type: "object";
214
+ readonly properties: {
215
+ readonly state: CapabilitySchema;
216
+ readonly questions: {
217
+ readonly type: "object";
218
+ readonly properties: {
219
+ readonly type: {
220
+ readonly type: "string";
221
+ readonly enum: readonly ["noul", "score", "choice"];
222
+ };
223
+ readonly instructions: CapabilitySchema;
224
+ readonly criteria: {
225
+ readonly type: readonly ["array", "object"];
226
+ };
227
+ };
228
+ readonly required: readonly ["type", "instructions"];
229
+ };
230
+ };
231
+ readonly required: readonly ["state", "questions"];
232
+ };
233
+ readonly result: CapabilitySchema;
234
+ readonly api: readonly ["AI.experimental_decide"];
235
+ };
236
+ readonly "browser.tabs": {
237
+ readonly scope: "grant";
238
+ readonly summary: "Lists the browser tabs a client chooses to expose.";
239
+ readonly params: CapabilitySchema;
240
+ readonly result: {
241
+ readonly type: "array";
242
+ readonly items: {
243
+ readonly type: "object";
244
+ readonly properties: {
245
+ readonly id: CapabilitySchema;
246
+ readonly url: CapabilitySchema;
247
+ readonly title: CapabilitySchema;
248
+ readonly favicon: CapabilitySchema;
249
+ readonly active: CapabilitySchema;
250
+ };
251
+ readonly required: readonly ["id", "url", "active"];
252
+ };
253
+ };
254
+ readonly api: readonly ["BrowserExtension.getTabs"];
255
+ };
256
+ readonly "browser.content": {
257
+ readonly scope: "grant";
258
+ readonly summary: "Returns the content of a browser tab.";
259
+ readonly params: {
260
+ readonly type: "object";
261
+ readonly properties: {
262
+ readonly cssSelector: CapabilitySchema;
263
+ readonly tabId: CapabilitySchema;
264
+ readonly format: {
265
+ readonly type: "string";
266
+ readonly enum: readonly ["html", "text", "markdown"];
267
+ };
268
+ };
269
+ };
270
+ readonly result: CapabilitySchema;
271
+ readonly api: readonly ["BrowserExtension.getContent"];
272
+ };
273
+ readonly "clipboard.copy": {
274
+ readonly scope: "grant";
275
+ readonly summary: "Copies text, HTML or a file path to the clipboard.";
276
+ readonly params: CapabilitySchema;
277
+ readonly result: CapabilitySchema;
278
+ readonly api: readonly ["Clipboard.copy", "Action.CopyToClipboard", "ActionPanel.Item.CopyToClipboard"];
279
+ };
280
+ readonly "clipboard.clear": {
281
+ readonly scope: "grant";
282
+ readonly summary: "Clears the clipboard.";
283
+ readonly params: CapabilitySchema;
284
+ readonly result: CapabilitySchema;
285
+ readonly api: readonly ["Clipboard.clear"];
286
+ };
287
+ readonly "clipboard.paste": {
288
+ readonly scope: "grant";
289
+ readonly summary: "Pastes text, HTML or a file path into the frontmost application.";
290
+ readonly params: CapabilitySchema;
291
+ readonly result: CapabilitySchema;
292
+ readonly api: readonly ["Clipboard.paste", "Action.Paste", "ActionPanel.Item.Paste"];
293
+ };
294
+ readonly "clipboard.read": {
295
+ readonly scope: "grant";
296
+ readonly summary: "Reads the clipboard, optionally at a history offset.";
297
+ readonly params: {
298
+ readonly type: "object";
299
+ readonly properties: {
300
+ readonly offset: {
301
+ readonly type: "integer";
302
+ readonly enum: readonly [0, 1, 2, 3, 4, 5];
303
+ };
304
+ };
305
+ };
306
+ readonly result: {
307
+ readonly type: "object";
308
+ readonly properties: {
309
+ readonly text: CapabilitySchema;
310
+ readonly file: CapabilitySchema;
311
+ readonly html: CapabilitySchema;
312
+ };
313
+ readonly required: readonly ["text"];
314
+ };
315
+ readonly api: readonly ["Clipboard.read", "Clipboard.readText"];
316
+ };
317
+ readonly "open.url": {
318
+ readonly scope: "grant";
319
+ readonly summary: "Opens an HTTP(S) URL, optionally with a named application.";
320
+ readonly params: {
321
+ readonly type: "object";
322
+ readonly properties: {
323
+ readonly url: CapabilitySchema;
324
+ readonly application: {
325
+ readonly type: readonly ["string", "object"];
326
+ };
327
+ };
328
+ readonly required: readonly ["url"];
329
+ };
330
+ readonly result: CapabilitySchema;
331
+ readonly api: readonly ["open", "Action.Open", "Action.OpenWith", "Action.OpenInBrowser"];
332
+ };
333
+ readonly "open.path": {
334
+ readonly scope: "grant";
335
+ readonly summary: "Opens a file or folder, optionally with a named application.";
336
+ readonly params: {
337
+ readonly type: "object";
338
+ readonly properties: {
339
+ readonly path: CapabilitySchema;
340
+ readonly application: {
341
+ readonly type: readonly ["string", "object"];
342
+ };
343
+ };
344
+ readonly required: readonly ["path"];
345
+ };
346
+ readonly result: CapabilitySchema;
347
+ readonly api: readonly ["open", "Action.Open", "Action.OpenWith"];
348
+ };
349
+ readonly "selection.text": {
350
+ readonly scope: "grant";
351
+ readonly summary: "Returns the selected text; an empty string means nothing is selected.";
352
+ readonly params: CapabilitySchema;
353
+ readonly result: CapabilitySchema;
354
+ readonly api: readonly ["getSelectedText"];
355
+ };
356
+ readonly "selection.files": {
357
+ readonly scope: "grant";
358
+ readonly summary: "Returns the selected file-system items.";
359
+ readonly params: CapabilitySchema;
360
+ readonly result: {
361
+ readonly type: "array";
362
+ readonly items: {
363
+ readonly type: "object";
364
+ readonly properties: {
365
+ readonly path: CapabilitySchema;
366
+ };
367
+ };
368
+ };
369
+ readonly api: readonly ["getSelectedFinderItems"];
370
+ };
371
+ readonly "applications.frontmost": {
372
+ readonly scope: "grant";
373
+ readonly summary: "Returns the frontmost application.";
374
+ readonly params: CapabilitySchema;
375
+ readonly result: CapabilitySchema;
376
+ readonly api: readonly ["getFrontmostApplication"];
377
+ };
378
+ readonly "applications.list": {
379
+ readonly scope: "grant";
380
+ readonly summary: "Lists installed applications, optionally filtered by path.";
381
+ readonly params: {
382
+ readonly type: "object";
383
+ readonly properties: {
384
+ readonly path: CapabilitySchema;
385
+ };
386
+ };
387
+ readonly result: {
388
+ readonly type: "array";
389
+ readonly items: CapabilitySchema;
390
+ };
391
+ readonly api: readonly ["getApplications"];
392
+ };
393
+ readonly "applications.default": {
394
+ readonly scope: "grant";
395
+ readonly summary: "Returns the application the machine would open a path with.";
396
+ readonly params: {
397
+ readonly type: "object";
398
+ readonly properties: {
399
+ readonly path: CapabilitySchema;
400
+ };
401
+ readonly required: readonly ["path"];
402
+ };
403
+ readonly result: CapabilitySchema;
404
+ readonly api: readonly ["getDefaultApplication"];
405
+ };
406
+ readonly "finder.show": {
407
+ readonly scope: "grant";
408
+ readonly summary: "Reveals a file or folder in the file manager.";
409
+ readonly params: {
410
+ readonly type: "object";
411
+ readonly properties: {
412
+ readonly path: CapabilitySchema;
413
+ };
414
+ readonly required: readonly ["path"];
415
+ };
416
+ readonly result: CapabilitySchema;
417
+ readonly api: readonly ["showInFinder", "Action.ShowInFinder"];
418
+ };
419
+ readonly trash: {
420
+ readonly scope: "grant";
421
+ readonly summary: "Moves files or folders to the trash.";
422
+ readonly params: {
423
+ readonly type: "object";
424
+ readonly properties: {
425
+ readonly paths: CapabilitySchema;
426
+ };
427
+ readonly required: readonly ["paths"];
428
+ };
429
+ readonly result: CapabilitySchema;
430
+ readonly api: readonly ["trash", "Action.Trash"];
431
+ };
432
+ readonly "window.desktops": {
433
+ readonly scope: "grant";
434
+ readonly summary: "Lists desktops across all screens.";
435
+ readonly params: CapabilitySchema;
436
+ readonly result: {
437
+ readonly type: "array";
438
+ readonly items: CapabilitySchema;
439
+ };
440
+ readonly api: readonly ["WindowManagement.getDesktops"];
441
+ };
442
+ readonly "window.active": {
443
+ readonly scope: "grant";
444
+ readonly summary: "Returns the active window.";
445
+ readonly params: CapabilitySchema;
446
+ readonly result: CapabilitySchema;
447
+ readonly api: readonly ["WindowManagement.getActiveWindow"];
448
+ };
449
+ readonly "window.list": {
450
+ readonly scope: "grant";
451
+ readonly summary: "Lists the windows on the active desktop.";
452
+ readonly params: CapabilitySchema;
453
+ readonly result: {
454
+ readonly type: "array";
455
+ readonly items: CapabilitySchema;
456
+ };
457
+ readonly api: readonly ["WindowManagement.getWindowsOnActiveDesktop"];
458
+ };
459
+ readonly "window.setBounds": {
460
+ readonly scope: "grant";
461
+ readonly summary: "Moves, resizes or makes a window fullscreen.";
462
+ readonly params: {
463
+ readonly type: "object";
464
+ readonly properties: {
465
+ readonly id: CapabilitySchema;
466
+ readonly bounds: {
467
+ readonly type: readonly ["object", "string"];
468
+ };
469
+ readonly desktopId: CapabilitySchema;
470
+ };
471
+ readonly required: readonly ["id", "bounds"];
472
+ };
473
+ readonly result: CapabilitySchema;
474
+ readonly api: readonly ["WindowManagement.setWindowBounds"];
475
+ };
476
+ readonly "preferences.open": {
477
+ readonly scope: "grant";
478
+ readonly summary: "Asks the client to open extension or command preferences.";
479
+ readonly params: {
480
+ readonly type: "object";
481
+ readonly properties: {
482
+ readonly scope: {
483
+ readonly type: "string";
484
+ readonly enum: readonly ["extension", "command"];
485
+ };
486
+ };
487
+ readonly required: readonly ["scope"];
488
+ };
489
+ readonly result: CapabilitySchema;
490
+ readonly api: readonly ["openExtensionPreferences", "openCommandPreferences"];
491
+ };
492
+ readonly "command.launch": {
493
+ readonly scope: "grant";
494
+ readonly summary: "Launches another command, passing arguments and launch context.";
495
+ readonly params: {
496
+ readonly type: "object";
497
+ readonly properties: {
498
+ readonly name: CapabilitySchema;
499
+ readonly type: {
500
+ readonly type: "string";
501
+ readonly enum: readonly ["userInitiated", "background"];
502
+ };
503
+ readonly extensionName: CapabilitySchema;
504
+ readonly ownerOrAuthorName: CapabilitySchema;
505
+ readonly arguments: CapabilitySchema;
506
+ readonly context: CapabilitySchema;
507
+ readonly fallbackText: CapabilitySchema;
508
+ };
509
+ readonly required: readonly ["name", "type"];
510
+ };
511
+ readonly result: CapabilitySchema;
512
+ readonly api: readonly ["launchCommand"];
513
+ };
514
+ readonly "command.metadata": {
515
+ readonly scope: "grant";
516
+ readonly summary: "Updates the command's subtitle in the client.";
517
+ readonly params: {
518
+ readonly type: "object";
519
+ readonly properties: {
520
+ readonly subtitle: {
521
+ readonly type: readonly ["string", "null"];
522
+ };
523
+ };
524
+ };
525
+ readonly result: CapabilitySchema;
526
+ readonly api: readonly ["updateCommandMetadata"];
527
+ };
528
+ readonly "snippet.create": {
529
+ readonly scope: "grant";
530
+ readonly summary: "Creates a snippet from text, a name and a keyword.";
531
+ readonly params: {
532
+ readonly type: "object";
533
+ readonly properties: {
534
+ readonly text: CapabilitySchema;
535
+ readonly name: CapabilitySchema;
536
+ readonly keyword: CapabilitySchema;
537
+ };
538
+ readonly required: readonly ["text"];
539
+ };
540
+ readonly result: CapabilitySchema;
541
+ readonly api: readonly ["Action.CreateSnippet"];
542
+ };
543
+ readonly "quicklink.create": {
544
+ readonly scope: "grant";
545
+ readonly summary: "Creates a quicklink from a link and optional metadata.";
546
+ readonly params: {
547
+ readonly type: "object";
548
+ readonly properties: {
549
+ readonly link: CapabilitySchema;
550
+ readonly name: CapabilitySchema;
551
+ readonly icon: CapabilitySchema;
552
+ readonly application: {
553
+ readonly type: readonly ["string", "object"];
554
+ };
555
+ };
556
+ readonly required: readonly ["link"];
557
+ };
558
+ readonly result: CapabilitySchema;
559
+ readonly api: readonly ["Action.CreateQuicklink"];
560
+ };
561
+ readonly "quicklook.toggle": {
562
+ readonly scope: "grant";
563
+ readonly summary: "Toggles Quick Look for the client's selected item.";
564
+ readonly params: CapabilitySchema;
565
+ readonly result: CapabilitySchema;
566
+ readonly api: readonly ["Action.ToggleQuickLook"];
567
+ };
568
+ readonly "mcp.install": {
569
+ readonly scope: "grant";
570
+ readonly summary: "Installs an MCP server descriptor.";
571
+ readonly params: {
572
+ readonly type: "object";
573
+ readonly properties: {
574
+ readonly server: CapabilitySchema;
575
+ };
576
+ readonly required: readonly ["server"];
577
+ };
578
+ readonly result: CapabilitySchema;
579
+ readonly api: readonly ["Action.InstallMCPServer"];
580
+ };
581
+ };
582
+ export type CapabilityName = keyof typeof CAPABILITIES;
583
+ /** Whether a wire name names a capability in `CAPABILITIES`. */
584
+ export declare function isCapabilityName(name: string): name is CapabilityName;