@fungi.computer/nacre 0.0.0-stage → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -2
  3. package/dist/app-directory.d.ts +600 -0
  4. package/dist/app-directory.js +323 -0
  5. package/dist/browser-actions.d.ts +7 -0
  6. package/dist/browser-actions.js +56 -0
  7. package/dist/command-host.d.ts +140 -0
  8. package/dist/command-host.js +532 -0
  9. package/dist/commands.d.ts +25 -0
  10. package/dist/commands.js +78 -0
  11. package/dist/index.d.ts +8 -0
  12. package/dist/index.js +9 -0
  13. package/dist/keys.d.ts +47 -0
  14. package/dist/keys.js +136 -0
  15. package/dist/shell-module.d.ts +98 -0
  16. package/dist/shell-module.js +90 -0
  17. package/dist/window-manager.d.ts +159 -0
  18. package/dist/window-manager.js +796 -0
  19. package/dist/workbench-contract.d.ts +70 -0
  20. package/dist/workbench-contract.js +1 -0
  21. package/dist/workbench-directory.d.ts +343 -0
  22. package/dist/workbench-directory.js +65 -0
  23. package/dist/workbench-host-types.d.ts +114 -0
  24. package/dist/workbench-host-types.js +1 -0
  25. package/dist/workbench-host.d.ts +34 -0
  26. package/dist/workbench-host.js +356 -0
  27. package/dist/workbench-model.d.ts +223 -0
  28. package/dist/workbench-model.js +93 -0
  29. package/dist/workbench.d.ts +4 -0
  30. package/dist/workbench.js +2 -0
  31. package/docs/api/README.md +21 -0
  32. package/docs/api/app-directory.md +587 -0
  33. package/docs/api/command-host.md +225 -0
  34. package/docs/api/commands.md +199 -0
  35. package/docs/api/index.md +1860 -0
  36. package/docs/api/keys.md +183 -0
  37. package/docs/api/shell-module.md +233 -0
  38. package/docs/api/window-manager.md +269 -0
  39. package/docs/api/workbench-directory.md +141 -0
  40. package/docs/api/workbench.md +201 -0
  41. package/package.json +98 -3
@@ -0,0 +1,1860 @@
1
+ <!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
2
+
3
+ [**@fungi.computer/nacre**](README.md)
4
+
5
+ ---
6
+
7
+ [@fungi.computer/nacre](README.md) / index
8
+
9
+ # index
10
+
11
+ ## Classes
12
+
13
+ ### WorkbenchHost
14
+
15
+ Child-window, command and callback lifetime for the trusted shell the host
16
+ composes into its own document. Each child mounts inside the window slot the
17
+ shell hands it, so the browser moves, clips and stacks it with that window; the
18
+ host never positions a child itself.
19
+
20
+ #### Implements
21
+
22
+ - [`TeamWorkbenchHostHandle`](#teamworkbenchhosthandle)
23
+
24
+ #### Constructors
25
+
26
+ ##### Constructor
27
+
28
+ ```ts
29
+ new WorkbenchHost(options): WorkbenchHost;
30
+ ```
31
+
32
+ ###### Parameters
33
+
34
+ | Parameter | Type |
35
+ | --------- | ----------------------------------------------- |
36
+ | `options` | [`WorkbenchHostOptions`](#workbenchhostoptions) |
37
+
38
+ ###### Returns
39
+
40
+ [`WorkbenchHost`](#workbenchhost)
41
+
42
+ #### Methods
43
+
44
+ ##### team()
45
+
46
+ ```ts
47
+ team(): Promise<WhistleJsonValue>;
48
+ ```
49
+
50
+ The authenticated Team hosting this dashboard; the caller parses it.
51
+
52
+ ###### Returns
53
+
54
+ `Promise`\<`WhistleJsonValue`\>
55
+
56
+ ###### Implementation of
57
+
58
+ ```ts
59
+ TeamWorkbenchHostHandle.team;
60
+ ```
61
+
62
+ ##### computers()
63
+
64
+ ```ts
65
+ computers(input): Promise<WhistleJsonValue>;
66
+ ```
67
+
68
+ A page of the Team's Computer inventory; the caller parses it.
69
+
70
+ ###### Parameters
71
+
72
+ | Parameter | Type |
73
+ | --------- | ---------------------------------------------------------- |
74
+ | `input` | `Readonly`\<\{ `limit`: `number`; `offset`: `number`; \}\> |
75
+
76
+ ###### Returns
77
+
78
+ `Promise`\<`WhistleJsonValue`\>
79
+
80
+ ###### Implementation of
81
+
82
+ ```ts
83
+ TeamWorkbenchHostHandle.computers;
84
+ ```
85
+
86
+ ##### directory()
87
+
88
+ ```ts
89
+ directory(): Promise<WhistleJsonValue>;
90
+ ```
91
+
92
+ The Team's effective App directory and role choices; the caller parses it.
93
+
94
+ ###### Returns
95
+
96
+ `Promise`\<`WhistleJsonValue`\>
97
+
98
+ ###### Implementation of
99
+
100
+ ```ts
101
+ TeamWorkbenchHostHandle.directory;
102
+ ```
103
+
104
+ ##### requestGill()
105
+
106
+ ```ts
107
+ requestGill(input): Promise<
108
+ | {
109
+ viewId: string;
110
+ title: string;
111
+ state: "empty";
112
+ rows: readonly [];
113
+ next?: string;
114
+ }
115
+ | {
116
+ viewId: string;
117
+ title: string;
118
+ state: "error";
119
+ rows: readonly [];
120
+ reason?: "exec_isolation_required" | "params_required";
121
+ error: string;
122
+ recovery?: | {
123
+ kind: "configure";
124
+ param: string;
125
+ }
126
+ | {
127
+ kind: "open";
128
+ };
129
+ }
130
+ | {
131
+ viewId: string;
132
+ title: string;
133
+ state: "full";
134
+ rows: readonly object[];
135
+ next?: string;
136
+ }
137
+ | {
138
+ options: readonly object[];
139
+ next?: string;
140
+ }>;
141
+ ```
142
+
143
+ Invoke a declared Gill of an admitted App in this Team. No caller-provided
144
+ resource data.
145
+
146
+ ###### Parameters
147
+
148
+ | Parameter | Type | Description |
149
+ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
150
+ | `input` | \{ `viewId`: `string`; `params?`: \{ \[`key`: `string`\]: `string`; \}; `after?`: `string`; `options?`: `string`; `surfaceId`: `string`; \} | - |
151
+ | `input.viewId` | `string` | - |
152
+ | `input.params?` | \{ \[`key`: `string`\]: `string`; \} | - |
153
+ | `input.after?` | `string` | - |
154
+ | `input.options?` | `string` | - |
155
+ | `input.surfaceId` | `string` | The App surface the Gill request is addressed to. |
156
+
157
+ ###### Returns
158
+
159
+ `Promise`\< \| \{ `viewId`: `string`; `title`: `string`; `state`: `"empty"`;
160
+ `rows`: readonly \[\]; `next?`: `string`; \} \| \{ `viewId`: `string`; `title`:
161
+ `string`; `state`: `"error"`; `rows`: readonly \[\]; `reason?`:
162
+ `"exec_isolation_required"` \| `"params_required"`; `error`: `string`;
163
+ `recovery?`: \| \{ `kind`: `"configure"`; `param`: `string`; \} \| \{ `kind`:
164
+ `"open"`; \}; \} \| \{ `viewId`: `string`; `title`: `string`; `state`: `"full"`;
165
+ `rows`: readonly `object`[]; `next?`: `string`; \} \| \{ `options`: readonly
166
+ `object`[]; `next?`: `string`; \}\>
167
+
168
+ ###### Implementation of
169
+
170
+ ```ts
171
+ TeamWorkbenchHostHandle.requestGill;
172
+ ```
173
+
174
+ ##### watchGillChanges()
175
+
176
+ ```ts
177
+ watchGillChanges(...input): Promise<WorkbenchGillWatch>;
178
+ ```
179
+
180
+ Observe resource changes; only the host owns the authenticated stream. Close
181
+ while covered.
182
+
183
+ ###### Parameters
184
+
185
+ | Parameter | Type |
186
+ | ---------- | --------------------------------------- |
187
+ | ...`input` | \[`object`, () => `Promise`\<`void`\>\] |
188
+
189
+ ###### Returns
190
+
191
+ `Promise`\<[`WorkbenchGillWatch`](#workbenchgillwatch)\>
192
+
193
+ ###### Implementation of
194
+
195
+ ```ts
196
+ TeamWorkbenchHostHandle.watchGillChanges;
197
+ ```
198
+
199
+ ##### platformDestinations()
200
+
201
+ ```ts
202
+ platformDestinations(): Promise<readonly Readonly<{
203
+ id: string;
204
+ label: string;
205
+ }>[]>;
206
+ ```
207
+
208
+ The platform destinations the host currently offers.
209
+
210
+ ###### Returns
211
+
212
+ `Promise`\<readonly `Readonly`\<\{ `id`: `string`; `label`: `string`; \}\>[]\>
213
+
214
+ ###### Implementation of
215
+
216
+ ```ts
217
+ TeamWorkbenchHostHandle.platformDestinations;
218
+ ```
219
+
220
+ ##### openPlatformDestination()
221
+
222
+ ```ts
223
+ openPlatformDestination(id): Promise<void>;
224
+ ```
225
+
226
+ Ask the host to navigate to one offered platform destination.
227
+
228
+ ###### Parameters
229
+
230
+ | Parameter | Type |
231
+ | --------- | -------- |
232
+ | `id` | `string` |
233
+
234
+ ###### Returns
235
+
236
+ `Promise`\<`void`\>
237
+
238
+ ###### Implementation of
239
+
240
+ ```ts
241
+ TeamWorkbenchHostHandle.openPlatformDestination;
242
+ ```
243
+
244
+ ##### settingsSections()
245
+
246
+ ```ts
247
+ settingsSections(): Promise<readonly string[] | null>;
248
+ ```
249
+
250
+ Describe the actual controls without offering unsupported Settings.
251
+
252
+ ###### Returns
253
+
254
+ `Promise`\<readonly `string`[] \| `null`\>
255
+
256
+ ###### Implementation of
257
+
258
+ ```ts
259
+ TeamWorkbenchHostHandle.settingsSections;
260
+ ```
261
+
262
+ ##### takeAppOpenRequest()
263
+
264
+ ```ts
265
+ takeAppOpenRequest(): Promise<
266
+ | {
267
+ role: string;
268
+ intent: | {
269
+ kind: "compose";
270
+ text: string;
271
+ }
272
+ | {
273
+ kind: "navigate";
274
+ params: readonly object[];
275
+ };
276
+ }
277
+ | {
278
+ appId: string;
279
+ intent: | {
280
+ kind: "compose";
281
+ text: string;
282
+ }
283
+ | {
284
+ kind: "navigate";
285
+ params: readonly object[];
286
+ };
287
+ }
288
+ | null>;
289
+ ```
290
+
291
+ Take, once, the App-open handoff the visitor's Hub address carried (for example
292
+ `?open=inbox&intent=compose`). The host consumes it from its own address; the
293
+ dashboard opens it like any other `apps.open` request.
294
+
295
+ ###### Returns
296
+
297
+ `Promise`\< \| \{ `role`: `string`; `intent`: \| \{ `kind`: `"compose"`; `text`:
298
+ `string`; \} \| \{ `kind`: `"navigate"`; `params`: readonly `object`[]; \}; \}
299
+ \| \{ `appId`: `string`; `intent`: \| \{ `kind`: `"compose"`; `text`: `string`;
300
+ \} \| \{ `kind`: `"navigate"`; `params`: readonly `object`[]; \}; \} \| `null`\>
301
+
302
+ ###### Implementation of
303
+
304
+ ```ts
305
+ TeamWorkbenchHostHandle.takeAppOpenRequest;
306
+ ```
307
+
308
+ ##### registerDesktopSettings()
309
+
310
+ ```ts
311
+ registerDesktopSettings(handler): Promise<WorkbenchDesktopRegistration>;
312
+ ```
313
+
314
+ Bind the admitted dashboard's arranger to the host's member-consent UI. Only the
315
+ host invokes it; ordinary Apps can only open their own Settings.
316
+
317
+ ###### Parameters
318
+
319
+ | Parameter | Type |
320
+ | --------- | --------- |
321
+ | `handler` | `unknown` |
322
+
323
+ ###### Returns
324
+
325
+ `Promise`\<[`WorkbenchDesktopRegistration`](#workbenchdesktopregistration)\>
326
+
327
+ ###### Implementation of
328
+
329
+ ```ts
330
+ TeamWorkbenchHostHandle.registerDesktopSettings;
331
+ ```
332
+
333
+ ##### openSettings()
334
+
335
+ ```ts
336
+ openSettings(location): Promise<void>;
337
+ ```
338
+
339
+ Open the host's own Team settings at a dashboard-defined location (the host
340
+ parses it). Administration there runs with the signed-in person's own authority
341
+ in host-rendered UI, never through the dashboard. Resolves when Settings close,
342
+ so the dashboard restores its own focus.
343
+
344
+ ###### Parameters
345
+
346
+ | Parameter | Type |
347
+ | ---------- | ------------------ |
348
+ | `location` | `WhistleJsonValue` |
349
+
350
+ ###### Returns
351
+
352
+ `Promise`\<`void`\>
353
+
354
+ ###### Implementation of
355
+
356
+ ```ts
357
+ TeamWorkbenchHostHandle.openSettings;
358
+ ```
359
+
360
+ ##### memberAvatar()
361
+
362
+ ```ts
363
+ memberAvatar(): Promise<WhistleJsonValue>;
364
+ ```
365
+
366
+ The signed-in person's own avatar preference; the caller parses it.
367
+
368
+ ###### Returns
369
+
370
+ `Promise`\<`WhistleJsonValue`\>
371
+
372
+ ###### Implementation of
373
+
374
+ ```ts
375
+ TeamWorkbenchHostHandle.memberAvatar;
376
+ ```
377
+
378
+ ##### watchSettingsChanges()
379
+
380
+ ```ts
381
+ watchSettingsChanges(onChanged): Promise<void>;
382
+ ```
383
+
384
+ Hear when host-rendered settings or App access consent changed the Team's Apps
385
+ or the person's settings, so the dashboard refreshes.
386
+
387
+ ###### Parameters
388
+
389
+ | Parameter | Type |
390
+ | ----------- | ------------------------- |
391
+ | `onChanged` | () => `Promise`\<`void`\> |
392
+
393
+ ###### Returns
394
+
395
+ `Promise`\<`void`\>
396
+
397
+ ###### Implementation of
398
+
399
+ ```ts
400
+ TeamWorkbenchHostHandle.watchSettingsChanges;
401
+ ```
402
+
403
+ ##### \[dispose\]()
404
+
405
+ ```ts
406
+ dispose: void;
407
+ ```
408
+
409
+ The shell unmounted: stop notifying its callbacks.
410
+
411
+ ###### Returns
412
+
413
+ `void`
414
+
415
+ ##### mount()
416
+
417
+ ```ts
418
+ mount(
419
+ container,
420
+ input,
421
+ events
422
+ ): Promise<WorkbenchChildHandle>;
423
+ ```
424
+
425
+ Resolve, authorize and mount one child App inside `container`, the shell's own
426
+ slot in that App's window. The host never moves the child: the shell keeps
427
+ `container` attached and moves its window instead.
428
+
429
+ ###### Parameters
430
+
431
+ | Parameter | Type |
432
+ | ----------- | ------------------------------------------------------- |
433
+ | `container` | `HTMLElement` |
434
+ | `input` | [`WorkbenchChildLaunch`](#workbenchchildlaunch) |
435
+ | `events` | [`TeamWorkbenchChildEvents`](#teamworkbenchchildevents) |
436
+
437
+ ###### Returns
438
+
439
+ `Promise`\<[`WorkbenchChildHandle`](#workbenchchildhandle)\>
440
+
441
+ ###### Implementation of
442
+
443
+ ```ts
444
+ TeamWorkbenchHostHandle.mount;
445
+ ```
446
+
447
+ ##### reportAgentSessionSelection()
448
+
449
+ ```ts
450
+ reportAgentSessionSelection(windowId, selection): Promise<void>;
451
+ ```
452
+
453
+ Bind one mounted child's explicit Agent Session selection to the host.
454
+
455
+ ###### Parameters
456
+
457
+ | Parameter | Type |
458
+ | ----------- | ---------------------------------------------------------------------------- |
459
+ | `windowId` | `string` |
460
+ | `selection` | \| `Readonly`\<\{ `agentId`: `string`; `sessionId`: `string`; \}\> \| `null` |
461
+
462
+ ###### Returns
463
+
464
+ `Promise`\<`void`\>
465
+
466
+ ###### Implementation of
467
+
468
+ ```ts
469
+ TeamWorkbenchHostHandle.reportAgentSessionSelection;
470
+ ```
471
+
472
+ ## Type Aliases
473
+
474
+ ### TeamWorkbenchChildEvents
475
+
476
+ ```ts
477
+ type TeamWorkbenchChildEvents = WorkbenchChildEvents &
478
+ Readonly<{
479
+ onAgentSessionSelection: (selection) => Promise<void>;
480
+ }>;
481
+ ```
482
+
483
+ Team dashboards additionally relay the selected Agent Session to the Hub.
484
+
485
+ ---
486
+
487
+ ### TeamWorkbenchHostHandle
488
+
489
+ ```ts
490
+ type TeamWorkbenchHostHandle = object;
491
+ ```
492
+
493
+ Team/Computer/App-directory reads and child-App hosting for the trusted shell.
494
+ The host composes the shell into its own top-level document, so the shell runs
495
+ with the host's escalated permissions; each child App still runs in its own
496
+ sandboxed frame with its own separately resolved approvals.
497
+
498
+ #### Methods
499
+
500
+ ##### team()
501
+
502
+ ```ts
503
+ team(): Promise<WhistleJsonValue>;
504
+ ```
505
+
506
+ The authenticated Team hosting this dashboard; the caller parses it.
507
+
508
+ ###### Returns
509
+
510
+ `Promise`\<`WhistleJsonValue`\>
511
+
512
+ ##### computers()
513
+
514
+ ```ts
515
+ computers(input): Promise<WhistleJsonValue>;
516
+ ```
517
+
518
+ A page of the Team's Computer inventory; the caller parses it.
519
+
520
+ ###### Parameters
521
+
522
+ | Parameter | Type |
523
+ | --------- | ---------------------------------------------------------- |
524
+ | `input` | `Readonly`\<\{ `limit`: `number`; `offset`: `number`; \}\> |
525
+
526
+ ###### Returns
527
+
528
+ `Promise`\<`WhistleJsonValue`\>
529
+
530
+ ##### directory()
531
+
532
+ ```ts
533
+ directory(): Promise<WhistleJsonValue>;
534
+ ```
535
+
536
+ The Team's effective App directory and role choices; the caller parses it.
537
+
538
+ ###### Returns
539
+
540
+ `Promise`\<`WhistleJsonValue`\>
541
+
542
+ ##### requestGill()
543
+
544
+ ```ts
545
+ requestGill(input): Promise<
546
+ | {
547
+ viewId: Schema.String;
548
+ title: Schema.String;
549
+ state: Schema.Literal<"empty">;
550
+ rows: Schema.Tuple<readonly []>;
551
+ next?: Schema.optional<Schema.String>;
552
+ }
553
+ | {
554
+ viewId: Schema.String;
555
+ title: Schema.String;
556
+ state: Schema.Literal<"error">;
557
+ rows: Schema.Tuple<readonly []>;
558
+ reason?: Schema.optional<Schema.Literals<readonly ["exec_isolation_required", "params_required"]>>;
559
+ error: Schema.String;
560
+ recovery?: Schema.optional<Schema.Union<readonly [Schema.Struct<{
561
+ kind: Schema.Literal<...>;
562
+ param: Schema.String;
563
+ }>, Schema.Struct<{
564
+ kind: Schema.Literal<...>;
565
+ }>]>>;
566
+ }
567
+ | {
568
+ viewId: Schema.String;
569
+ title: Schema.String;
570
+ state: Schema.Literal<"full">;
571
+ rows: Schema.$Array<Schema.Struct<{
572
+ id: Schema.String;
573
+ title: Schema.String;
574
+ detail: Schema.optional<Schema.String>;
575
+ tone: Schema.optional<Schema.Literals<readonly [..., ..., ..., ..., ...]>>;
576
+ status: Schema.optional<Schema.Struct<{
577
+ label: Schema.String;
578
+ tone: Schema.Literals<...>;
579
+ }>>;
580
+ open: Schema.optional<Schema.Struct<{
581
+ params: Schema.$Array<...>;
582
+ }>>;
583
+ }>>;
584
+ next?: Schema.optional<Schema.String>;
585
+ }
586
+ | {
587
+ options: Schema.$Array<Schema.Struct<{
588
+ value: Schema.String;
589
+ label: Schema.String;
590
+ detail: Schema.optional<Schema.String>;
591
+ }>>;
592
+ next?: Schema.optional<Schema.String>;
593
+ }>;
594
+ ```
595
+
596
+ Invoke a declared Gill of an admitted App in this Team. No caller-provided
597
+ resource data.
598
+
599
+ ###### Parameters
600
+
601
+ | Parameter | Type | Description |
602
+ | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
603
+ | `input` | \{ `viewId`: `Schema.String`; `params?`: `Schema.optional`\<`Schema.$Record`\<`Schema.String`, `Schema.String`\>\>; `after?`: `Schema.optional`\<`Schema.String`\>; `options?`: `Schema.optional`\<`Schema.String`\>; `surfaceId`: `string`; \} | - |
604
+ | `input.viewId` | `Schema.String` | - |
605
+ | `input.params?` | `Schema.optional`\<`Schema.$Record`\<`Schema.String`, `Schema.String`\>\> | - |
606
+ | `input.after?` | `Schema.optional`\<`Schema.String`\> | - |
607
+ | `input.options?` | `Schema.optional`\<`Schema.String`\> | - |
608
+ | `input.surfaceId` | `string` | The App surface the Gill request is addressed to. |
609
+
610
+ ###### Returns
611
+
612
+ `Promise`\< \| \{ `viewId`: `Schema.String`; `title`: `Schema.String`; `state`:
613
+ `Schema.Literal`\<`"empty"`\>; `rows`: `Schema.Tuple`\<readonly \[\]\>; `next?`:
614
+ `Schema.optional`\<`Schema.String`\>; \} \| \{ `viewId`: `Schema.String`;
615
+ `title`: `Schema.String`; `state`: `Schema.Literal`\<`"error"`\>; `rows`:
616
+ `Schema.Tuple`\<readonly \[\]\>; `reason?`:
617
+ `Schema.optional`\<`Schema.Literals`\<readonly \[`"exec_isolation_required"`,
618
+ `"params_required"`\]\>\>; `error`: `Schema.String`; `recovery?`:
619
+ `Schema.optional`\<`Schema.Union`\<readonly \[`Schema.Struct`\<\{ `kind`:
620
+ `Schema.Literal`\<...\>; `param`: `Schema.String`; \}\>, `Schema.Struct`\<\{
621
+ `kind`: `Schema.Literal`\<...\>; \}\>\]\>\>; \} \| \{ `viewId`: `Schema.String`;
622
+ `title`: `Schema.String`; `state`: `Schema.Literal`\<`"full"`\>; `rows`:
623
+ `Schema.$Array`\<`Schema.Struct`\<\{ `id`: `Schema.String`; `title`:
624
+ `Schema.String`; `detail`: `Schema.optional`\<`Schema.String`\>; `tone`:
625
+ `Schema.optional`\<`Schema.Literals`\<readonly \[..., ..., ..., ..., ...\]\>\>;
626
+ `status`: `Schema.optional`\<`Schema.Struct`\<\{ `label`: `Schema.String`;
627
+ `tone`: `Schema.Literals`\<...\>; \}\>\>; `open`:
628
+ `Schema.optional`\<`Schema.Struct`\<\{ `params`: `Schema.$Array`\<...\>; \}\>\>;
629
+ \}\>\>; `next?`: `Schema.optional`\<`Schema.String`\>; \} \| \{ `options`:
630
+ `Schema.$Array`\<`Schema.Struct`\<\{ `value`: `Schema.String`; `label`:
631
+ `Schema.String`; `detail`: `Schema.optional`\<`Schema.String`\>; \}\>\>;
632
+ `next?`: `Schema.optional`\<`Schema.String`\>; \}\>
633
+
634
+ ##### watchGillChanges()
635
+
636
+ ```ts
637
+ watchGillChanges(input, onChanged): Promise<WorkbenchGillWatch>;
638
+ ```
639
+
640
+ Observe resource changes; only the host owns the authenticated stream. Close
641
+ while covered.
642
+
643
+ ###### Parameters
644
+
645
+ | Parameter | Type | Description |
646
+ | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
647
+ | `input` | \{ `viewId`: `Schema.String`; `params?`: `Schema.optional`\<`Schema.$Record`\<`Schema.String`, `Schema.String`\>\>; `after?`: `Schema.optional`\<`Schema.String`\>; `options?`: `Schema.optional`\<`Schema.String`\>; `surfaceId`: `string`; \} | - |
648
+ | `input.viewId` | `Schema.String` | - |
649
+ | `input.params?` | `Schema.optional`\<`Schema.$Record`\<`Schema.String`, `Schema.String`\>\> | - |
650
+ | `input.after?` | `Schema.optional`\<`Schema.String`\> | - |
651
+ | `input.options?` | `Schema.optional`\<`Schema.String`\> | - |
652
+ | `input.surfaceId` | `string` | The App surface the Gill request is addressed to. |
653
+ | `onChanged` | () => `Promise`\<`void`\> | - |
654
+
655
+ ###### Returns
656
+
657
+ `Promise`\<[`WorkbenchGillWatch`](#workbenchgillwatch)\>
658
+
659
+ ##### mount()
660
+
661
+ ```ts
662
+ mount(
663
+ container,
664
+ input,
665
+ events
666
+ ): Promise<WorkbenchChildHandle>;
667
+ ```
668
+
669
+ Resolve, authorize and mount one child App inside `container`, the shell's own
670
+ slot in that App's window. The host never moves the child: the shell keeps
671
+ `container` attached and moves its window instead.
672
+
673
+ ###### Parameters
674
+
675
+ | Parameter | Type |
676
+ | ----------- | ------------------------------------------------------- |
677
+ | `container` | `HTMLElement` |
678
+ | `input` | [`WorkbenchChildLaunch`](#workbenchchildlaunch) |
679
+ | `events` | [`TeamWorkbenchChildEvents`](#teamworkbenchchildevents) |
680
+
681
+ ###### Returns
682
+
683
+ `Promise`\<[`WorkbenchChildHandle`](#workbenchchildhandle)\>
684
+
685
+ ##### reportAgentSessionSelection()
686
+
687
+ ```ts
688
+ reportAgentSessionSelection(windowId, selection): Promise<void>;
689
+ ```
690
+
691
+ Bind one mounted child's explicit Agent Session selection to the host.
692
+
693
+ ###### Parameters
694
+
695
+ | Parameter | Type |
696
+ | ----------- | ---------------------------------------------------------------------------- |
697
+ | `windowId` | `string` |
698
+ | `selection` | \| `Readonly`\<\{ `agentId`: `string`; `sessionId`: `string`; \}\> \| `null` |
699
+
700
+ ###### Returns
701
+
702
+ `Promise`\<`void`\>
703
+
704
+ ##### platformDestinations()
705
+
706
+ ```ts
707
+ platformDestinations(): Promise<readonly Readonly<{
708
+ id: string;
709
+ label: string;
710
+ }>[]>;
711
+ ```
712
+
713
+ The platform destinations the host currently offers.
714
+
715
+ ###### Returns
716
+
717
+ `Promise`\<readonly `Readonly`\<\{ `id`: `string`; `label`: `string`; \}\>[]\>
718
+
719
+ ##### settingsSections()
720
+
721
+ ```ts
722
+ settingsSections(): Promise<readonly string[] | null>;
723
+ ```
724
+
725
+ Offered Settings categories, or null for unrestricted host controls.
726
+
727
+ ###### Returns
728
+
729
+ `Promise`\<readonly `string`[] \| `null`\>
730
+
731
+ ##### openPlatformDestination()
732
+
733
+ ```ts
734
+ openPlatformDestination(id): Promise<void>;
735
+ ```
736
+
737
+ Ask the host to navigate to one offered platform destination.
738
+
739
+ ###### Parameters
740
+
741
+ | Parameter | Type |
742
+ | --------- | -------- |
743
+ | `id` | `string` |
744
+
745
+ ###### Returns
746
+
747
+ `Promise`\<`void`\>
748
+
749
+ ##### takeAppOpenRequest()
750
+
751
+ ```ts
752
+ takeAppOpenRequest(): Promise<
753
+ | {
754
+ role: Schema.String;
755
+ intent: Schema.Union<readonly [Schema.Struct<{
756
+ kind: Schema.Literal<"compose">;
757
+ text: Schema.String;
758
+ }>, Schema.Struct<{
759
+ kind: Schema.Literal<"navigate">;
760
+ params: Schema.$Array<Schema.Struct<...>>;
761
+ }>]>;
762
+ }
763
+ | {
764
+ appId: Schema.String;
765
+ intent: Schema.Union<readonly [Schema.Struct<{
766
+ kind: Schema.Literal<"compose">;
767
+ text: Schema.String;
768
+ }>, Schema.Struct<{
769
+ kind: Schema.Literal<"navigate">;
770
+ params: Schema.$Array<Schema.Struct<...>>;
771
+ }>]>;
772
+ }
773
+ | null>;
774
+ ```
775
+
776
+ Take, once, the App-open handoff the visitor's Hub address carried (for example
777
+ `?open=inbox&intent=compose`). The host consumes it from its own address; the
778
+ dashboard opens it like any other `apps.open` request.
779
+
780
+ ###### Returns
781
+
782
+ `Promise`\< \| \{ `role`: `Schema.String`; `intent`: `Schema.Union`\<readonly
783
+ \[`Schema.Struct`\<\{ `kind`: `Schema.Literal`\<`"compose"`\>; `text`:
784
+ `Schema.String`; \}\>, `Schema.Struct`\<\{ `kind`:
785
+ `Schema.Literal`\<`"navigate"`\>; `params`:
786
+ `Schema.$Array`\<`Schema.Struct`\<...\>\>; \}\>\]\>; \} \| \{ `appId`:
787
+ `Schema.String`; `intent`: `Schema.Union`\<readonly \[`Schema.Struct`\<\{
788
+ `kind`: `Schema.Literal`\<`"compose"`\>; `text`: `Schema.String`; \}\>,
789
+ `Schema.Struct`\<\{ `kind`: `Schema.Literal`\<`"navigate"`\>; `params`:
790
+ `Schema.$Array`\<`Schema.Struct`\<...\>\>; \}\>\]\>; \} \| `null`\>
791
+
792
+ ##### openSettings()
793
+
794
+ ```ts
795
+ openSettings(location): Promise<void>;
796
+ ```
797
+
798
+ Open the host's own Team settings at a dashboard-defined location (the host
799
+ parses it). Administration there runs with the signed-in person's own authority
800
+ in host-rendered UI, never through the dashboard. Resolves when Settings close,
801
+ so the dashboard restores its own focus.
802
+
803
+ ###### Parameters
804
+
805
+ | Parameter | Type |
806
+ | ---------- | ------------------ |
807
+ | `location` | `WhistleJsonValue` |
808
+
809
+ ###### Returns
810
+
811
+ `Promise`\<`void`\>
812
+
813
+ ##### registerDesktopSettings()
814
+
815
+ ```ts
816
+ registerDesktopSettings(handler): Promise<WorkbenchDesktopRegistration>;
817
+ ```
818
+
819
+ Bind the admitted dashboard's arranger to the host's member-consent UI. Only the
820
+ host invokes it; ordinary Apps can only open their own Settings.
821
+
822
+ ###### Parameters
823
+
824
+ | Parameter | Type |
825
+ | --------- | ------------------------------------------------------- |
826
+ | `handler` | [`WorkbenchDesktopSettings`](#workbenchdesktopsettings) |
827
+
828
+ ###### Returns
829
+
830
+ `Promise`\<[`WorkbenchDesktopRegistration`](#workbenchdesktopregistration)\>
831
+
832
+ ##### watchSettingsChanges()
833
+
834
+ ```ts
835
+ watchSettingsChanges(onChanged): Promise<void>;
836
+ ```
837
+
838
+ Hear when host-rendered settings or App access consent changed the Team's Apps
839
+ or the person's settings, so the dashboard refreshes.
840
+
841
+ ###### Parameters
842
+
843
+ | Parameter | Type |
844
+ | ----------- | ------------------------- |
845
+ | `onChanged` | () => `Promise`\<`void`\> |
846
+
847
+ ###### Returns
848
+
849
+ `Promise`\<`void`\>
850
+
851
+ ##### memberAvatar()
852
+
853
+ ```ts
854
+ memberAvatar(): Promise<WhistleJsonValue>;
855
+ ```
856
+
857
+ The signed-in person's own avatar preference; the caller parses it.
858
+
859
+ ###### Returns
860
+
861
+ `Promise`\<`WhistleJsonValue`\>
862
+
863
+ ---
864
+
865
+ ### WorkbenchResolvedChild
866
+
867
+ ```ts
868
+ type WorkbenchResolvedChild = Readonly<{
869
+ launch: Omit<WorkbenchChildLaunch, "title">;
870
+ title?: string;
871
+ }>;
872
+ ```
873
+
874
+ A launch checked against the embedding host's own installation authority.
875
+
876
+ ---
877
+
878
+ ### WorkbenchChildSurface
879
+
880
+ ```ts
881
+ type WorkbenchChildSurface = Pick<
882
+ WorkbenchChildHandle,
883
+ | "setVisibility"
884
+ | "requestClose"
885
+ | "requestBack"
886
+ | "activateStatus"
887
+ | "activateNavigation"
888
+ > &
889
+ object;
890
+ ```
891
+
892
+ The host's real mounted App; selection and lease replacement stay with it.
893
+
894
+ #### Type Declaration
895
+
896
+ | Name | Type | Description |
897
+ | --------------- | --------------------------------- | ----------------------------------------------------------------------- |
898
+ | `dispose()` | () => `void` | Release the mounted child or host-owned observations. |
899
+ | `reconfigure()` | (`launch`) => `Promise`\<`void`\> | Replace the host-admitted selection while retaining the child document. |
900
+
901
+ ---
902
+
903
+ ### WorkbenchChildMountOptions
904
+
905
+ ```ts
906
+ type WorkbenchChildMountOptions = Readonly<{
907
+ container: HTMLElement;
908
+ hostWindow: Window;
909
+ title?: string;
910
+ events: TeamWorkbenchChildEvents;
911
+ commands: AppSurfaceCommandMount;
912
+ onDesktopSettings: (surfaceId) => Promise<void>;
913
+ onPermissionRequest: (input, context) => Promise<AppPermissionOutcome>;
914
+ }>;
915
+ ```
916
+
917
+ Inputs shared child-window mechanics supply to the host's admitted mount.
918
+
919
+ ---
920
+
921
+ ### WorkbenchPreparedChild
922
+
923
+ ```ts
924
+ type WorkbenchPreparedChild = Readonly<{
925
+ commands: readonly AppCommandDeclaration[];
926
+ mount: Promise<WorkbenchChildSurface>;
927
+ dispose: Promise<void>;
928
+ }>;
929
+ ```
930
+
931
+ Host-owned admission and lifetime of one prepared child.
932
+
933
+ ---
934
+
935
+ ### WorkbenchHostServices
936
+
937
+ ```ts
938
+ type WorkbenchHostServices = Pick<
939
+ TeamWorkbenchHostHandle,
940
+ | "team"
941
+ | "computers"
942
+ | "directory"
943
+ | "requestGill"
944
+ | "watchGillChanges"
945
+ | "memberAvatar"
946
+ > &
947
+ Readonly<{
948
+ suggestDesktopSettings: Promise<void>;
949
+ dispose: void;
950
+ }>;
951
+ ```
952
+
953
+ Host services retain their own Team, account, Gill and consent authority.
954
+
955
+ ---
956
+
957
+ ### WorkbenchHostControls
958
+
959
+ ```ts
960
+ type WorkbenchHostControls = Readonly<{
961
+ sections?: readonly string[];
962
+ parseSettings: WhistleJsonValue;
963
+ openSettings: void;
964
+ subscribeSettingsClosed: () => void;
965
+ subscribeChanges: () => void;
966
+ attachDesktopSettings: () => void;
967
+ requestAppAccess: Promise<AppPermissionOutcome>;
968
+ }>;
969
+ ```
970
+
971
+ Controls offered by the real embedding host, never grants lent by the App.
972
+
973
+ ---
974
+
975
+ ### WorkbenchWarningEvent
976
+
977
+ ```ts
978
+ type WorkbenchWarningEvent =
979
+ | "team_workbench_commands_failed"
980
+ | "team_workbench_settings_notification_failed"
981
+ | "team_workbench_focus_notification_failed";
982
+ ```
983
+
984
+ Retained host warning identifiers; adapters own their diagnostic sink.
985
+
986
+ ---
987
+
988
+ ### WorkbenchWarningFields
989
+
990
+ ```ts
991
+ type WorkbenchWarningFields =
992
+ | Readonly<{
993
+ cause: unknown;
994
+ }>
995
+ | Readonly<{
996
+ stage: "update" | "dispose";
997
+ cause: unknown;
998
+ }>;
999
+ ```
1000
+
1001
+ Fields of a retained child/settings notification failure.
1002
+
1003
+ ---
1004
+
1005
+ ### WorkbenchHostOptions
1006
+
1007
+ ```ts
1008
+ type WorkbenchHostOptions = Readonly<{
1009
+ hostWindow: Window;
1010
+ resolveLaunch: WorkbenchResolvedChild;
1011
+ prepareChild: Promise<
1012
+ Readonly<{
1013
+ commands: readonly AppCommandDeclaration[];
1014
+ mount: Promise<WorkbenchChildSurface>;
1015
+ dispose: Promise<void>;
1016
+ }>
1017
+ >;
1018
+ services: WorkbenchHostServices;
1019
+ reportAgentSessionSelection: void;
1020
+ platform: Readonly<{
1021
+ controls: WorkbenchHostControls;
1022
+ destinations: Promise<
1023
+ readonly Readonly<{
1024
+ id: string;
1025
+ label: string;
1026
+ }>[]
1027
+ >;
1028
+ open: void;
1029
+ takeAppOpenRequest: TeamWorkbenchHostHandle["takeAppOpenRequest"];
1030
+ }>;
1031
+ log: void;
1032
+ }>;
1033
+ ```
1034
+
1035
+ One workbench's child mechanics over host-owned admission and services.
1036
+
1037
+ ---
1038
+
1039
+ ### WorkbenchChildLaunch
1040
+
1041
+ ```ts
1042
+ type WorkbenchChildLaunch = Readonly<{
1043
+ windowId: string;
1044
+ appId: string;
1045
+ releaseId: string;
1046
+ surfaceId: string;
1047
+ href: string;
1048
+ title?: string;
1049
+ openRequest: AppOpenRequest | null;
1050
+ }>;
1051
+ ```
1052
+
1053
+ A request to resolve and mount one child App, by its own identity.
1054
+
1055
+ ---
1056
+
1057
+ ### WorkbenchCommandInvocation
1058
+
1059
+ ```ts
1060
+ type WorkbenchCommandInvocation = Readonly<{
1061
+ arguments?: WhistleJsonValue;
1062
+ origin: WhistleExecutionOrigin;
1063
+ }>;
1064
+ ```
1065
+
1066
+ One invocation of a mounted child's own Release-declared command.
1067
+
1068
+ ---
1069
+
1070
+ ### WorkbenchChildEvents
1071
+
1072
+ ```ts
1073
+ type WorkbenchChildEvents = Readonly<{
1074
+ onComputerChoice?: () => Promise<void>;
1075
+ onNavigation?: (input) => Promise<void>;
1076
+ onAppOpen?: (input) => Promise<void>;
1077
+ onAppRole?: (role) => Promise<AppRoleChoice>;
1078
+ onSelectionChanged?: () => Promise<boolean>;
1079
+ onCommands?: (commands) => Promise<void>;
1080
+ onReservedChord?: (input) => Promise<void>;
1081
+ onFocus?: (focused) => Promise<void>;
1082
+ onNavigationState?: (state) => Promise<void>;
1083
+ onStatusItems?: (items) => Promise<void>;
1084
+ }>;
1085
+ ```
1086
+
1087
+ Events a mounted child raises toward its dashboard. A child's permission
1088
+ requests never reach the dashboard: the host asks the person itself. The host
1089
+ validates a child's commands against that child's own Release declaration before
1090
+ forwarding them, so the dashboard can present them but never widen them.
1091
+
1092
+ ---
1093
+
1094
+ ### WorkbenchChildHandle
1095
+
1096
+ ```ts
1097
+ type WorkbenchChildHandle = object;
1098
+ ```
1099
+
1100
+ One mounted child App; every method proxies to its real host-owned mount.
1101
+
1102
+ #### Methods
1103
+
1104
+ ##### setVisibility()
1105
+
1106
+ ```ts
1107
+ setVisibility(visibility): Promise<void>;
1108
+ ```
1109
+
1110
+ Show or hide the mounted child without changing its identity.
1111
+
1112
+ ###### Parameters
1113
+
1114
+ | Parameter | Type |
1115
+ | ------------ | ------------------------- |
1116
+ | `visibility` | `"hidden"` \| `"visible"` |
1117
+
1118
+ ###### Returns
1119
+
1120
+ `Promise`\<`void`\>
1121
+
1122
+ ##### reconfigure()
1123
+
1124
+ ```ts
1125
+ reconfigure(launch): Promise<void>;
1126
+ ```
1127
+
1128
+ Update the launch descriptor of the existing mount.
1129
+
1130
+ ###### Parameters
1131
+
1132
+ | Parameter | Type |
1133
+ | --------- | ----------------------------------------------- |
1134
+ | `launch` | [`WorkbenchChildLaunch`](#workbenchchildlaunch) |
1135
+
1136
+ ###### Returns
1137
+
1138
+ `Promise`\<`void`\>
1139
+
1140
+ ##### requestClose()
1141
+
1142
+ ```ts
1143
+ requestClose(): Promise<boolean>;
1144
+ ```
1145
+
1146
+ Ask whether the child permits a user-initiated close.
1147
+
1148
+ ###### Returns
1149
+
1150
+ `Promise`\<`boolean`\>
1151
+
1152
+ ##### requestBack()
1153
+
1154
+ ```ts
1155
+ requestBack(): Promise<boolean>;
1156
+ ```
1157
+
1158
+ Ask the child to go back one step in its own history; `true` when it did.
1159
+
1160
+ ###### Returns
1161
+
1162
+ `Promise`\<`boolean`\>
1163
+
1164
+ ##### activateStatus()
1165
+
1166
+ ```ts
1167
+ activateStatus(action): Promise<boolean>;
1168
+ ```
1169
+
1170
+ Deliver the person's use of a child's status item; `true` when it acted.
1171
+
1172
+ ###### Parameters
1173
+
1174
+ | Parameter | Type |
1175
+ | --------- | ----------------- |
1176
+ | `action` | `AppStatusAction` |
1177
+
1178
+ ###### Returns
1179
+
1180
+ `Promise`\<`boolean`\>
1181
+
1182
+ ##### activateNavigation()
1183
+
1184
+ ```ts
1185
+ activateNavigation(activation): Promise<boolean>;
1186
+ ```
1187
+
1188
+ Deliver the person's use of a child's crumb or header command; `true` when it
1189
+ acted.
1190
+
1191
+ ###### Parameters
1192
+
1193
+ | Parameter | Type |
1194
+ | ------------ | ------------------------- |
1195
+ | `activation` | `AppNavigationActivation` |
1196
+
1197
+ ###### Returns
1198
+
1199
+ `Promise`\<`boolean`\>
1200
+
1201
+ ##### invokeCommand()
1202
+
1203
+ ```ts
1204
+ invokeCommand(commandId, input): Promise<WhistleJsonValue | undefined>;
1205
+ ```
1206
+
1207
+ Run one of the child's currently presented commands.
1208
+
1209
+ ###### Parameters
1210
+
1211
+ | Parameter | Type |
1212
+ | ----------- | ----------------------------------------------------------- |
1213
+ | `commandId` | `string` |
1214
+ | `input` | [`WorkbenchCommandInvocation`](#workbenchcommandinvocation) |
1215
+
1216
+ ###### Returns
1217
+
1218
+ `Promise`\<`WhistleJsonValue` \| `undefined`\>
1219
+
1220
+ ##### dispose()
1221
+
1222
+ ```ts
1223
+ dispose(): Promise<void>;
1224
+ ```
1225
+
1226
+ Release the child mount and its resources.
1227
+
1228
+ ###### Returns
1229
+
1230
+ `Promise`\<`void`\>
1231
+
1232
+ ---
1233
+
1234
+ ### WorkbenchPlatformDestination
1235
+
1236
+ ```ts
1237
+ type WorkbenchPlatformDestination = Readonly<{
1238
+ id: string;
1239
+ label: string;
1240
+ }>;
1241
+ ```
1242
+
1243
+ A platform destination the host offers the dashboard, such as opening a host
1244
+ settings page. The host owns the labels and the navigation; the dashboard only
1245
+ presents them and asks the host to follow one.
1246
+
1247
+ ---
1248
+
1249
+ ### WorkbenchGillRequest
1250
+
1251
+ ```ts
1252
+ type WorkbenchGillRequest = typeof workbenchGillRequestSchema.Type;
1253
+ ```
1254
+
1255
+ Decoded Gill request for a surface in the host directory.
1256
+
1257
+ ---
1258
+
1259
+ ### DesktopGillSelection
1260
+
1261
+ ```ts
1262
+ type DesktopGillSelection = z.output<typeof desktopGillSelectionSchema>;
1263
+ ```
1264
+
1265
+ The identity of a Gill selected in a host-rendered settings view.
1266
+
1267
+ ---
1268
+
1269
+ ### DesktopGillAddition
1270
+
1271
+ ```ts
1272
+ type DesktopGillAddition = z.output<typeof desktopGillAdditionSchema>;
1273
+ ```
1274
+
1275
+ A decoded request to add a Gill placement.
1276
+
1277
+ ---
1278
+
1279
+ ### WorkbenchDesktopSettings
1280
+
1281
+ ```ts
1282
+ type WorkbenchDesktopSettings = object;
1283
+ ```
1284
+
1285
+ A dashboard supplies its own arranger, not an endpoint for ordinary Apps.
1286
+
1287
+ #### Properties
1288
+
1289
+ ##### readGill
1290
+
1291
+ ```ts
1292
+ readGill: (input) => Promise<z.output<typeof desktopGillSizesSchema>>;
1293
+ ```
1294
+
1295
+ Read the sizes currently assigned to this Gill in the dashboard layout.
1296
+
1297
+ ###### Parameters
1298
+
1299
+ | Parameter | Type |
1300
+ | --------- | ----------------------------------------------- |
1301
+ | `input` | [`DesktopGillSelection`](#desktopgillselection) |
1302
+
1303
+ ###### Returns
1304
+
1305
+ `Promise`\<`z.output`\<_typeof_
1306
+ [`desktopGillSizesSchema`](#desktopgillsizesschema)\>\>
1307
+
1308
+ ##### addGill
1309
+
1310
+ ```ts
1311
+ addGill: (input) => Promise<void>;
1312
+ ```
1313
+
1314
+ Add a Gill at the requested size to the dashboard layout.
1315
+
1316
+ ###### Parameters
1317
+
1318
+ | Parameter | Type |
1319
+ | --------- | --------------------------------------------- |
1320
+ | `input` | [`DesktopGillAddition`](#desktopgilladdition) |
1321
+
1322
+ ###### Returns
1323
+
1324
+ `Promise`\<`void`\>
1325
+
1326
+ ##### removeGill
1327
+
1328
+ ```ts
1329
+ removeGill: (input) => Promise<void>;
1330
+ ```
1331
+
1332
+ Remove this Gill from the dashboard layout.
1333
+
1334
+ ###### Parameters
1335
+
1336
+ | Parameter | Type |
1337
+ | --------- | ----------------------------------------------- |
1338
+ | `input` | [`DesktopGillSelection`](#desktopgillselection) |
1339
+
1340
+ ###### Returns
1341
+
1342
+ `Promise`\<`void`\>
1343
+
1344
+ ---
1345
+
1346
+ ### WorkbenchDesktopRegistration
1347
+
1348
+ ```ts
1349
+ type WorkbenchDesktopRegistration = object;
1350
+ ```
1351
+
1352
+ A registration lease; close it when the dashboard unmounts.
1353
+
1354
+ #### Methods
1355
+
1356
+ ##### close()
1357
+
1358
+ ```ts
1359
+ close(): Promise<void>;
1360
+ ```
1361
+
1362
+ Release this host registration.
1363
+
1364
+ ###### Returns
1365
+
1366
+ `Promise`\<`void`\>
1367
+
1368
+ ---
1369
+
1370
+ ### WorkbenchGillWatch
1371
+
1372
+ ```ts
1373
+ type WorkbenchGillWatch = object;
1374
+ ```
1375
+
1376
+ A host-owned change subscription; close it when no longer visible.
1377
+
1378
+ #### Methods
1379
+
1380
+ ##### close()
1381
+
1382
+ ```ts
1383
+ close(): Promise<void>;
1384
+ ```
1385
+
1386
+ Release this host registration.
1387
+
1388
+ ###### Returns
1389
+
1390
+ `Promise`\<`void`\>
1391
+
1392
+ ---
1393
+
1394
+ ### TeamComputer
1395
+
1396
+ ```ts
1397
+ type TeamComputer = z.output<typeof teamComputerSchema>;
1398
+ ```
1399
+
1400
+ A decoded Team Computer inventory record.
1401
+
1402
+ ## Variables
1403
+
1404
+ ### workbenchGillRequestSchema
1405
+
1406
+ ```ts
1407
+ const workbenchGillRequestSchema: Struct<{
1408
+ viewId: String;
1409
+ params: optional<$Record<String, String>>;
1410
+ after: optional<String>;
1411
+ options: optional<String>;
1412
+ surfaceId: String;
1413
+ }>;
1414
+ ```
1415
+
1416
+ A declared Gill request addressed to one host-selected App surface.
1417
+
1418
+ ---
1419
+
1420
+ ### desktopGillSelectionSchema
1421
+
1422
+ ```ts
1423
+ const desktopGillSelectionSchema: ZodObject<
1424
+ {
1425
+ surfaceId: ZodString;
1426
+ gillId: ZodString;
1427
+ },
1428
+ $strict
1429
+ >;
1430
+ ```
1431
+
1432
+ The member chooses a declared Gill and size in host-rendered Settings.
1433
+
1434
+ ---
1435
+
1436
+ ### desktopGillSizesSchema
1437
+
1438
+ ```ts
1439
+ const desktopGillSizesSchema: ZodArray<
1440
+ ZodEnum<{
1441
+ S: "S";
1442
+ M: "M";
1443
+ L: "L";
1444
+ }>
1445
+ >;
1446
+ ```
1447
+
1448
+ The dashboard layout sizes currently assigned to one Gill.
1449
+
1450
+ ---
1451
+
1452
+ ### desktopGillAdditionSchema
1453
+
1454
+ ```ts
1455
+ const desktopGillAdditionSchema: ZodObject<
1456
+ {
1457
+ surfaceId: ZodString;
1458
+ gillId: ZodString;
1459
+ size: ZodEnum<{
1460
+ S: "S";
1461
+ M: "M";
1462
+ L: "L";
1463
+ }>;
1464
+ },
1465
+ $strict
1466
+ >;
1467
+ ```
1468
+
1469
+ A selected Gill and the layout size requested for a new placement.
1470
+
1471
+ ---
1472
+
1473
+ ### desktopSettingsHandlerSchema
1474
+
1475
+ ```ts
1476
+ const desktopSettingsHandlerSchema: ZodPipe<
1477
+ ZodUnknown,
1478
+ ZodTransform<object & object, unknown>
1479
+ >;
1480
+ ```
1481
+
1482
+ Shape of the arranger callbacks the shell supplies to its host.
1483
+
1484
+ ---
1485
+
1486
+ ### appOpenRequestSchema
1487
+
1488
+ ```ts
1489
+ const appOpenRequestSchema: Union<
1490
+ readonly [
1491
+ Struct<{
1492
+ kind: Literal<"compose">;
1493
+ requestId: String;
1494
+ text: String;
1495
+ }>,
1496
+ Struct<{
1497
+ kind: Literal<"navigate">;
1498
+ requestId: String;
1499
+ params: $Array<
1500
+ Struct<{
1501
+ key: String;
1502
+ value: String;
1503
+ }>
1504
+ >;
1505
+ }>,
1506
+ ]
1507
+ >;
1508
+ ```
1509
+
1510
+ Runtime check for an App-open handoff arriving across an untrusted boundary.
1511
+
1512
+ ---
1513
+
1514
+ ### teamComputerSchema
1515
+
1516
+ ```ts
1517
+ const teamComputerSchema: ZodObject<
1518
+ {
1519
+ computerId: ZodString;
1520
+ name: ZodString;
1521
+ createdAt: ZodNumber;
1522
+ updatedAt: ZodNumber;
1523
+ },
1524
+ $strict
1525
+ >;
1526
+ ```
1527
+
1528
+ One Team Computer in a host's inventory: the wire of `computers()`.
1529
+
1530
+ ---
1531
+
1532
+ ### teamComputerDirectorySchema
1533
+
1534
+ ```ts
1535
+ const teamComputerDirectorySchema: ZodObject<
1536
+ {
1537
+ computers: ZodArray<
1538
+ ZodObject<
1539
+ {
1540
+ computerId: ZodString;
1541
+ name: ZodString;
1542
+ createdAt: ZodNumber;
1543
+ updatedAt: ZodNumber;
1544
+ },
1545
+ $strict
1546
+ >
1547
+ >;
1548
+ nextOffset: ZodNullable<ZodNumber>;
1549
+ },
1550
+ $strict
1551
+ >;
1552
+ ```
1553
+
1554
+ One page of a host's Team Computer inventory.
1555
+
1556
+ ## Functions
1557
+
1558
+ ### createBrowserActionHandler()
1559
+
1560
+ ```ts
1561
+ function createBrowserActionHandler(
1562
+ options,
1563
+ ): (request) => Promise<AppBrowserActionOutcome>;
1564
+ ```
1565
+
1566
+ Browser effects stay in the trusted host, bound to one mounted App frame.
1567
+
1568
+ #### Parameters
1569
+
1570
+ | Parameter | Type |
1571
+ | -------------------- | ------------------------------------------------------------------------------------ |
1572
+ | `options` | \{ `frame`: `HTMLIFrameElement`; `hostWindow`: `Window`; `signal`: `AbortSignal`; \} |
1573
+ | `options.frame` | `HTMLIFrameElement` |
1574
+ | `options.hostWindow` | `Window` |
1575
+ | `options.signal` | `AbortSignal` |
1576
+
1577
+ #### Returns
1578
+
1579
+ (`request`) => `Promise`\<`AppBrowserActionOutcome`\>
1580
+
1581
+ ## References
1582
+
1583
+ ### AppCommandOptional
1584
+
1585
+ Re-exports [AppCommandOptional](command-host.md#appcommandoptional)
1586
+
1587
+ ---
1588
+
1589
+ ### AppCommandDeclaration
1590
+
1591
+ Re-exports [AppCommandDeclaration](command-host.md#appcommanddeclaration)
1592
+
1593
+ ---
1594
+
1595
+ ### commandPaletteReservedChordForPlatform
1596
+
1597
+ Re-exports
1598
+ [commandPaletteReservedChordForPlatform](command-host.md#commandpalettereservedchordforplatform)
1599
+
1600
+ ---
1601
+
1602
+ ### commandPaletteReservedChordForUserAgent
1603
+
1604
+ Re-exports
1605
+ [commandPaletteReservedChordForUserAgent](command-host.md#commandpalettereservedchordforuseragent)
1606
+
1607
+ ---
1608
+
1609
+ ### appDirectorySourceId
1610
+
1611
+ Re-exports [appDirectorySourceId](command-host.md#appdirectorysourceid)
1612
+
1613
+ ---
1614
+
1615
+ ### AppSurfaceCommandMount
1616
+
1617
+ Re-exports [AppSurfaceCommandMount](command-host.md#appsurfacecommandmount)
1618
+
1619
+ ---
1620
+
1621
+ ### PaneCommands
1622
+
1623
+ Re-exports [PaneCommands](command-host.md#panecommands)
1624
+
1625
+ ---
1626
+
1627
+ ### PaneCommandMount
1628
+
1629
+ Re-exports [PaneCommandMount](command-host.md#panecommandmount)
1630
+
1631
+ ---
1632
+
1633
+ ### AppSurfaceCommandHost
1634
+
1635
+ Re-exports [AppSurfaceCommandHost](command-host.md#appsurfacecommandhost)
1636
+
1637
+ ---
1638
+
1639
+ ### createAppSurfaceCommandHost
1640
+
1641
+ Re-exports
1642
+ [createAppSurfaceCommandHost](command-host.md#createappsurfacecommandhost)
1643
+
1644
+ ---
1645
+
1646
+ ### backBinding
1647
+
1648
+ Re-exports [backBinding](commands.md#backbinding)
1649
+
1650
+ ---
1651
+
1652
+ ### ShellActions
1653
+
1654
+ Re-exports [ShellActions](commands.md#shellactions)
1655
+
1656
+ ---
1657
+
1658
+ ### shellCommands
1659
+
1660
+ Re-exports [shellCommands](commands.md#shellcommands)
1661
+
1662
+ ---
1663
+
1664
+ ### addressKey
1665
+
1666
+ Re-exports [addressKey](app-directory.md#addresskey)
1667
+
1668
+ ---
1669
+
1670
+ ### appAddressSchema
1671
+
1672
+ Re-exports [appAddressSchema](app-directory.md#appaddressschema)
1673
+
1674
+ ---
1675
+
1676
+ ### appAuthorityEnforcementSchema
1677
+
1678
+ Re-exports
1679
+ [appAuthorityEnforcementSchema](app-directory.md#appauthorityenforcementschema)
1680
+
1681
+ ---
1682
+
1683
+ ### appCatalogBrokerResultSchema
1684
+
1685
+ Re-exports
1686
+ [appCatalogBrokerResultSchema](app-directory.md#appcatalogbrokerresultschema)
1687
+
1688
+ ---
1689
+
1690
+ ### appCatalogEntrySchema
1691
+
1692
+ Re-exports [appCatalogEntrySchema](app-directory.md#appcatalogentryschema)
1693
+
1694
+ ---
1695
+
1696
+ ### appCatalogResponseSchema
1697
+
1698
+ Re-exports [appCatalogResponseSchema](app-directory.md#appcatalogresponseschema)
1699
+
1700
+ ---
1701
+
1702
+ ### appDirectoryEntrySchema
1703
+
1704
+ Re-exports [appDirectoryEntrySchema](app-directory.md#appdirectoryentryschema)
1705
+
1706
+ ---
1707
+
1708
+ ### appRoleSelectionSchema
1709
+
1710
+ Re-exports [appRoleSelectionSchema](app-directory.md#approleselectionschema)
1711
+
1712
+ ---
1713
+
1714
+ ### AppAddress
1715
+
1716
+ Re-exports [AppAddress](app-directory.md#appaddress)
1717
+
1718
+ ---
1719
+
1720
+ ### AppAuthorityEnforcement
1721
+
1722
+ Re-exports [AppAuthorityEnforcement](app-directory.md#appauthorityenforcement)
1723
+
1724
+ ---
1725
+
1726
+ ### AppCatalog
1727
+
1728
+ Re-exports [AppCatalog](app-directory.md#appcatalog)
1729
+
1730
+ ---
1731
+
1732
+ ### AppDirectoryEntry
1733
+
1734
+ Re-exports [AppDirectoryEntry](app-directory.md#appdirectoryentry)
1735
+
1736
+ ---
1737
+
1738
+ ### AppDirectoryGill
1739
+
1740
+ Re-exports [AppDirectoryGill](app-directory.md#appdirectorygill)
1741
+
1742
+ ---
1743
+
1744
+ ### ShellChord
1745
+
1746
+ Re-exports [ShellChord](keys.md#shellchord)
1747
+
1748
+ ---
1749
+
1750
+ ### KeyEventFacts
1751
+
1752
+ Re-exports [KeyEventFacts](keys.md#keyeventfacts)
1753
+
1754
+ ---
1755
+
1756
+ ### parseChord
1757
+
1758
+ Re-exports [parseChord](keys.md#parsechord)
1759
+
1760
+ ---
1761
+
1762
+ ### chordMatches
1763
+
1764
+ Re-exports [chordMatches](keys.md#chordmatches)
1765
+
1766
+ ---
1767
+
1768
+ ### LeaderKey
1769
+
1770
+ Re-exports [LeaderKey](keys.md#leaderkey)
1771
+
1772
+ ---
1773
+
1774
+ ### leaderKeys
1775
+
1776
+ Re-exports [leaderKeys](keys.md#leaderkeys)
1777
+
1778
+ ---
1779
+
1780
+ ### leaderKeyMatches
1781
+
1782
+ Re-exports [leaderKeyMatches](keys.md#leaderkeymatches)
1783
+
1784
+ ---
1785
+
1786
+ ### ShellKeyHost
1787
+
1788
+ Re-exports [ShellKeyHost](keys.md#shellkeyhost)
1789
+
1790
+ ---
1791
+
1792
+ ### installShellKeys
1793
+
1794
+ Re-exports [installShellKeys](keys.md#installshellkeys)
1795
+
1796
+ ---
1797
+
1798
+ ### WindowLaunch
1799
+
1800
+ Re-exports [WindowLaunch](window-manager.md#windowlaunch)
1801
+
1802
+ ---
1803
+
1804
+ ### WindowStatus
1805
+
1806
+ Re-exports [WindowStatus](window-manager.md#windowstatus)
1807
+
1808
+ ---
1809
+
1810
+ ### WindowHost
1811
+
1812
+ Re-exports [WindowHost](window-manager.md#windowhost)
1813
+
1814
+ ---
1815
+
1816
+ ### WindowEvents
1817
+
1818
+ Re-exports [WindowEvents](window-manager.md#windowevents)
1819
+
1820
+ ---
1821
+
1822
+ ### WindowProjection
1823
+
1824
+ Re-exports [WindowProjection](window-manager.md#windowprojection)
1825
+
1826
+ ---
1827
+
1828
+ ### WindowsProjection
1829
+
1830
+ Re-exports [WindowsProjection](window-manager.md#windowsprojection)
1831
+
1832
+ ---
1833
+
1834
+ ### hasVisibleWindows
1835
+
1836
+ Re-exports [hasVisibleWindows](window-manager.md#hasvisiblewindows)
1837
+
1838
+ ---
1839
+
1840
+ ### WindowMount
1841
+
1842
+ Re-exports [WindowMount](window-manager.md#windowmount)
1843
+
1844
+ ---
1845
+
1846
+ ### WindowManager
1847
+
1848
+ Re-exports [WindowManager](window-manager.md#windowmanager)
1849
+
1850
+ ---
1851
+
1852
+ ### WindowManagerOptions
1853
+
1854
+ Re-exports [WindowManagerOptions](window-manager.md#windowmanageroptions)
1855
+
1856
+ ---
1857
+
1858
+ ### createWindowManager
1859
+
1860
+ Re-exports [createWindowManager](window-manager.md#createwindowmanager)