@fungi.computer/oyster 0.0.0-stage → 0.0.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.
Files changed (242) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1082 -2
  3. package/dist/agents.d.ts +114 -0
  4. package/dist/agents.js +322 -0
  5. package/dist/app-builds.d.ts +151 -0
  6. package/dist/app-builds.js +355 -0
  7. package/dist/app-sandbox.d.ts +2 -0
  8. package/dist/app-sandbox.js +2 -0
  9. package/dist/app-sources.d.ts +46 -0
  10. package/dist/app-sources.js +335 -0
  11. package/dist/app-storage.d.ts +141 -0
  12. package/dist/app-storage.js +281 -0
  13. package/dist/apps/gate.d.ts +105 -0
  14. package/dist/apps/gate.js +273 -0
  15. package/dist/apps/index.d.ts +5 -0
  16. package/dist/apps/index.js +5 -0
  17. package/dist/apps/installation.d.ts +248 -0
  18. package/dist/apps/installation.js +307 -0
  19. package/dist/apps/operations.d.ts +8 -0
  20. package/dist/apps/operations.js +98 -0
  21. package/dist/apps/tools.d.ts +33 -0
  22. package/dist/apps/tools.js +17 -0
  23. package/dist/auth.d.ts +11 -0
  24. package/dist/auth.js +93 -0
  25. package/dist/backend-request.d.ts +3 -0
  26. package/dist/backend-request.js +53 -0
  27. package/dist/build/build-jobs.d.ts +128 -0
  28. package/dist/build/build-jobs.js +197 -0
  29. package/dist/build/build-step.d.ts +26 -0
  30. package/dist/build/build-step.js +20 -0
  31. package/dist/build/bundled-html.d.ts +7 -0
  32. package/dist/build/bundled-html.js +64 -0
  33. package/dist/build/definition-emission.d.ts +34 -0
  34. package/dist/build/definition-emission.js +201 -0
  35. package/dist/build/effect.d.ts +231 -0
  36. package/dist/build/effect.js +396 -0
  37. package/dist/build/git-environment.d.ts +6 -0
  38. package/dist/build/git-environment.js +48 -0
  39. package/dist/build/html-recipe.d.ts +20 -0
  40. package/dist/build/html-recipe.js +51 -0
  41. package/dist/build/local-build.d.ts +57 -0
  42. package/dist/build/local-build.js +1078 -0
  43. package/dist/build/r2-artifact-writer.d.ts +31 -0
  44. package/dist/build/r2-artifact-writer.js +179 -0
  45. package/dist/build/snapshot-package-store.d.ts +2 -0
  46. package/dist/build/snapshot-package-store.js +21 -0
  47. package/dist/build/snapshot-program-scripts.d.ts +6 -0
  48. package/dist/build/snapshot-program-scripts.js +2 -0
  49. package/dist/build/submission-contract.d.ts +384 -0
  50. package/dist/build/submission-contract.js +70 -0
  51. package/dist/build/workspace-build.d.ts +50 -0
  52. package/dist/build/workspace-build.js +156 -0
  53. package/dist/build-contract.d.ts +4 -0
  54. package/dist/build-contract.js +4 -0
  55. package/dist/build-jobs.d.ts +2 -0
  56. package/dist/build-jobs.js +2 -0
  57. package/dist/build.d.ts +11 -0
  58. package/dist/build.js +13 -0
  59. package/dist/capability-descriptor.d.ts +46 -0
  60. package/dist/capability-descriptor.js +51 -0
  61. package/dist/catalog-frame.d.ts +39 -0
  62. package/dist/catalog-frame.js +72 -0
  63. package/dist/cause-class.d.ts +19 -0
  64. package/dist/cause-class.js +54 -0
  65. package/dist/cloudflare.d.ts +123 -0
  66. package/dist/cloudflare.js +391 -0
  67. package/dist/computer-terminal.d.ts +38 -0
  68. package/dist/computer-terminal.js +410 -0
  69. package/dist/computer.d.ts +60 -0
  70. package/dist/computer.js +33 -0
  71. package/dist/event-recipients.d.ts +57 -0
  72. package/dist/event-recipients.js +144 -0
  73. package/dist/facet-invocation.d.ts +4 -0
  74. package/dist/facet-invocation.js +45 -0
  75. package/dist/files.d.ts +42 -0
  76. package/dist/files.js +123 -0
  77. package/dist/frame-binding-wire-script.d.ts +2 -0
  78. package/dist/frame-binding-wire-script.js +1 -0
  79. package/dist/frame-binding-wire.d.ts +28 -0
  80. package/dist/frame-binding-wire.js +54 -0
  81. package/dist/git-admission.d.ts +52 -0
  82. package/dist/git-admission.js +188 -0
  83. package/dist/git-auth.d.ts +11 -0
  84. package/dist/git-auth.js +27 -0
  85. package/dist/git-door.d.ts +35 -0
  86. package/dist/git-door.js +108 -0
  87. package/dist/git-journal.d.ts +31 -0
  88. package/dist/git-journal.js +188 -0
  89. package/dist/git.d.ts +31 -0
  90. package/dist/git.js +64 -0
  91. package/dist/guest-policy.d.ts +9 -0
  92. package/dist/guest-policy.js +13 -0
  93. package/dist/host.d.ts +244 -0
  94. package/dist/host.js +1043 -0
  95. package/dist/index.d.ts +166 -0
  96. package/dist/index.js +320 -0
  97. package/dist/installation-consent.d.ts +79 -0
  98. package/dist/installation-consent.js +82 -0
  99. package/dist/internal/background-origins.d.ts +3 -0
  100. package/dist/internal/background-origins.js +8 -0
  101. package/dist/internal/delivery.d.ts +12 -0
  102. package/dist/internal/delivery.js +167 -0
  103. package/dist/internal/host-gate.d.ts +14 -0
  104. package/dist/internal/host-gate.js +62 -0
  105. package/dist/internal/registry-installations.d.ts +6 -0
  106. package/dist/internal/registry-installations.js +12 -0
  107. package/dist/invocation.d.ts +251 -0
  108. package/dist/invocation.js +377 -0
  109. package/dist/keys.d.ts +48 -0
  110. package/dist/keys.js +52 -0
  111. package/dist/mcp-owner.d.ts +27 -0
  112. package/dist/mcp-owner.js +143 -0
  113. package/dist/mcp.d.ts +89 -0
  114. package/dist/mcp.js +429 -0
  115. package/dist/media.d.ts +23 -0
  116. package/dist/media.js +12 -0
  117. package/dist/pack.d.ts +76 -0
  118. package/dist/pack.js +134 -0
  119. package/dist/page/capabilities.d.ts +23 -0
  120. package/dist/page/capabilities.js +256 -0
  121. package/dist/page/computer-handles.d.ts +79 -0
  122. package/dist/page/computer-handles.js +44 -0
  123. package/dist/page/lifetime.d.ts +6 -0
  124. package/dist/page/lifetime.js +19 -0
  125. package/dist/page/mount.d.ts +163 -0
  126. package/dist/page/mount.js +390 -0
  127. package/dist/page/storage.d.ts +3 -0
  128. package/dist/page/storage.js +82 -0
  129. package/dist/page/terminal.d.ts +5 -0
  130. package/dist/page/terminal.js +7 -0
  131. package/dist/page-script.d.ts +14 -0
  132. package/dist/page-script.js +5 -0
  133. package/dist/r2-files.d.ts +3 -0
  134. package/dist/r2-files.js +79 -0
  135. package/dist/release.d.ts +72 -0
  136. package/dist/release.js +164 -0
  137. package/dist/root-data.d.ts +86 -0
  138. package/dist/root-data.js +69 -0
  139. package/dist/shell/app-directory.d.ts +537 -0
  140. package/dist/shell/app-directory.js +195 -0
  141. package/dist/shell/browser-actions.d.ts +7 -0
  142. package/dist/shell/browser-actions.js +56 -0
  143. package/dist/shell/command-host.d.ts +112 -0
  144. package/dist/shell/command-host.js +502 -0
  145. package/dist/shell/commands.d.ts +25 -0
  146. package/dist/shell/commands.js +78 -0
  147. package/dist/shell/index.d.ts +8 -0
  148. package/dist/shell/index.js +8 -0
  149. package/dist/shell/keys.d.ts +41 -0
  150. package/dist/shell/keys.js +134 -0
  151. package/dist/shell/shell-module.d.ts +31 -0
  152. package/dist/shell/shell-module.js +37 -0
  153. package/dist/shell/window-manager.d.ts +124 -0
  154. package/dist/shell/window-manager.js +711 -0
  155. package/dist/shell/workbench-contract.d.ts +68 -0
  156. package/dist/shell/workbench-contract.js +1 -0
  157. package/dist/shell/workbench-host-types.d.ts +96 -0
  158. package/dist/shell/workbench-host-types.js +1 -0
  159. package/dist/shell/workbench-host.d.ts +34 -0
  160. package/dist/shell/workbench-host.js +347 -0
  161. package/dist/shell/workbench-model.d.ts +192 -0
  162. package/dist/shell/workbench-model.js +53 -0
  163. package/dist/shell/workbench.d.ts +4 -0
  164. package/dist/shell/workbench.js +2 -0
  165. package/dist/source/fork.d.ts +27 -0
  166. package/dist/source/fork.js +46 -0
  167. package/dist/source/index.d.ts +11 -0
  168. package/dist/source/index.js +11 -0
  169. package/dist/source/seed-receipt.d.ts +53 -0
  170. package/dist/source/seed-receipt.js +18 -0
  171. package/dist/source/team-source.d.ts +32 -0
  172. package/dist/source/team-source.js +42 -0
  173. package/dist/source/template-repository.d.ts +2 -0
  174. package/dist/source/template-repository.js +8 -0
  175. package/dist/source/template-write.d.ts +69 -0
  176. package/dist/source/template-write.js +344 -0
  177. package/dist/storage-frame.d.ts +64 -0
  178. package/dist/storage-frame.js +28 -0
  179. package/dist/tenant.d.ts +81 -0
  180. package/dist/tenant.js +71 -0
  181. package/dist/testing/capabilities.d.ts +29 -0
  182. package/dist/testing/capabilities.js +130 -0
  183. package/dist/testing/catalog.d.ts +3 -0
  184. package/dist/testing/catalog.js +53 -0
  185. package/dist/testing/index.d.ts +10 -0
  186. package/dist/testing/index.js +10 -0
  187. package/dist/testing/installation.d.ts +11 -0
  188. package/dist/testing/installation.js +25 -0
  189. package/dist/testing/native-worker.d.ts +21 -0
  190. package/dist/testing/native-worker.js +106 -0
  191. package/dist/testing/worker.d.ts +18 -0
  192. package/dist/testing/worker.js +67 -0
  193. package/dist/testing/workers-runtime.d.ts +24 -0
  194. package/dist/testing/workers-runtime.js +33 -0
  195. package/dist/webhook-delivery.d.ts +14 -0
  196. package/dist/webhook-delivery.js +17 -0
  197. package/dist/workers-git.d.ts +285 -0
  198. package/dist/workers-git.js +1174 -0
  199. package/dist/workers.d.ts +352 -0
  200. package/dist/workers.js +866 -0
  201. package/docs/api/README.md +82 -0
  202. package/docs/api/agents.md +332 -0
  203. package/docs/api/app-storage.md +209 -0
  204. package/docs/api/apps.md +1375 -0
  205. package/docs/api/auth.md +63 -0
  206. package/docs/api/build-contract.md +507 -0
  207. package/docs/api/build.md +1476 -0
  208. package/docs/api/cloudflare.md +421 -0
  209. package/docs/api/computer.md +203 -0
  210. package/docs/api/files.md +117 -0
  211. package/docs/api/git.md +470 -0
  212. package/docs/api/host.md +1328 -0
  213. package/docs/api/index.md +430 -0
  214. package/docs/api/invocation.md +738 -0
  215. package/docs/api/keys.md +175 -0
  216. package/docs/api/mcp.md +301 -0
  217. package/docs/api/media.md +40 -0
  218. package/docs/api/modules.md +42 -0
  219. package/docs/api/pack.md +138 -0
  220. package/docs/api/page/mount.md +298 -0
  221. package/docs/api/root-data.md +111 -0
  222. package/docs/api/shell/app-directory.md +332 -0
  223. package/docs/api/shell/command-host.md +224 -0
  224. package/docs/api/shell/commands.md +197 -0
  225. package/docs/api/shell/keys.md +183 -0
  226. package/docs/api/shell/shell-module.md +143 -0
  227. package/docs/api/shell/window-manager.md +267 -0
  228. package/docs/api/shell/workbench.md +186 -0
  229. package/docs/api/shell.md +1788 -0
  230. package/docs/api/tenant.md +194 -0
  231. package/docs/api/workers-git.md +1527 -0
  232. package/docs/api/workers.md +1678 -0
  233. package/docs/media/architecture.mmd +32 -0
  234. package/docs/media/architecture.png +0 -0
  235. package/docs/media/bonsai-network.png +0 -0
  236. package/docs/media/bonsai-repository.png +0 -0
  237. package/docs/site/agent-quickstart.mdx +349 -0
  238. package/examples/git/worker.ts +39 -0
  239. package/examples/git/wrangler.jsonc +32 -0
  240. package/examples/standalone/worker.ts +14 -0
  241. package/examples/standalone/wrangler.jsonc +21 -0
  242. package/package.json +249 -3
@@ -0,0 +1,1788 @@
1
+ <!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
2
+
3
+ [**@fungi.computer/oyster**](README.md)
4
+
5
+ ---
6
+
7
+ [@fungi.computer/oyster](modules.md) / shell
8
+
9
+ # shell
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 |
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` |
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 |
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` |
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 |
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` |
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" | "requestClose" | "requestBack" | "activateStatus"
884
+ > &
885
+ object;
886
+ ```
887
+
888
+ The host's real mounted App; selection and lease replacement stay with it.
889
+
890
+ #### Type Declaration
891
+
892
+ | Name | Type | Description |
893
+ | --------------- | --------------------------------- | ----------------------------------------------------------------------- |
894
+ | `dispose()` | () => `void` | Release the mounted child or host-owned observations. |
895
+ | `reconfigure()` | (`launch`) => `Promise`\<`void`\> | Replace the host-admitted selection while retaining the child document. |
896
+
897
+ ---
898
+
899
+ ### WorkbenchChildMountOptions
900
+
901
+ ```ts
902
+ type WorkbenchChildMountOptions = Readonly<{
903
+ container: HTMLElement;
904
+ hostWindow: Window;
905
+ title?: string;
906
+ events: TeamWorkbenchChildEvents;
907
+ commands: AppSurfaceCommandMount;
908
+ onDesktopSettings: (surfaceId) => Promise<void>;
909
+ onPermissionRequest: (input) => Promise<AppPermissionOutcome>;
910
+ }>;
911
+ ```
912
+
913
+ Inputs shared child-window mechanics supply to the host's admitted mount.
914
+
915
+ ---
916
+
917
+ ### WorkbenchPreparedChild
918
+
919
+ ```ts
920
+ type WorkbenchPreparedChild = Readonly<{
921
+ commands: readonly AppCommandDeclaration[];
922
+ mount: Promise<WorkbenchChildSurface>;
923
+ dispose: Promise<void>;
924
+ }>;
925
+ ```
926
+
927
+ Host-owned admission and lifetime of one prepared child.
928
+
929
+ ---
930
+
931
+ ### WorkbenchHostServices
932
+
933
+ ```ts
934
+ type WorkbenchHostServices = Pick<
935
+ TeamWorkbenchHostHandle,
936
+ | "team"
937
+ | "computers"
938
+ | "directory"
939
+ | "requestGill"
940
+ | "watchGillChanges"
941
+ | "memberAvatar"
942
+ > &
943
+ Readonly<{
944
+ suggestDesktopSettings: Promise<void>;
945
+ dispose: void;
946
+ }>;
947
+ ```
948
+
949
+ Host services retain their own Team, account, Gill and consent authority.
950
+
951
+ ---
952
+
953
+ ### WorkbenchHostControls
954
+
955
+ ```ts
956
+ type WorkbenchHostControls = Readonly<{
957
+ sections?: readonly string[];
958
+ parseSettings: WhistleJsonValue;
959
+ openSettings: void;
960
+ subscribeSettingsClosed: () => void;
961
+ subscribeChanges: () => void;
962
+ attachDesktopSettings: () => void;
963
+ requestAppAccess: Promise<AppPermissionOutcome>;
964
+ }>;
965
+ ```
966
+
967
+ Controls offered by the real embedding host, never grants lent by the App.
968
+
969
+ ---
970
+
971
+ ### WorkbenchWarningEvent
972
+
973
+ ```ts
974
+ type WorkbenchWarningEvent =
975
+ | "team_workbench_commands_failed"
976
+ | "team_workbench_settings_notification_failed"
977
+ | "team_workbench_focus_notification_failed";
978
+ ```
979
+
980
+ Retained host warning identifiers; adapters own their diagnostic sink.
981
+
982
+ ---
983
+
984
+ ### WorkbenchWarningFields
985
+
986
+ ```ts
987
+ type WorkbenchWarningFields =
988
+ | Readonly<{
989
+ cause: unknown;
990
+ }>
991
+ | Readonly<{
992
+ stage: "update" | "dispose";
993
+ cause: unknown;
994
+ }>;
995
+ ```
996
+
997
+ Fields of a retained child/settings notification failure.
998
+
999
+ ---
1000
+
1001
+ ### WorkbenchHostOptions
1002
+
1003
+ ```ts
1004
+ type WorkbenchHostOptions = Readonly<{
1005
+ hostWindow: Window;
1006
+ resolveLaunch: WorkbenchResolvedChild;
1007
+ prepareChild: Promise<
1008
+ Readonly<{
1009
+ commands: readonly AppCommandDeclaration[];
1010
+ mount: Promise<WorkbenchChildSurface>;
1011
+ dispose: Promise<void>;
1012
+ }>
1013
+ >;
1014
+ services: WorkbenchHostServices;
1015
+ reportAgentSessionSelection: void;
1016
+ platform: Readonly<{
1017
+ controls: WorkbenchHostControls;
1018
+ destinations: Promise<
1019
+ readonly Readonly<{
1020
+ id: string;
1021
+ label: string;
1022
+ }>[]
1023
+ >;
1024
+ open: void;
1025
+ takeAppOpenRequest: TeamWorkbenchHostHandle["takeAppOpenRequest"];
1026
+ }>;
1027
+ log: void;
1028
+ }>;
1029
+ ```
1030
+
1031
+ One workbench's child mechanics over host-owned admission and services.
1032
+
1033
+ ---
1034
+
1035
+ ### WorkbenchChildLaunch
1036
+
1037
+ ```ts
1038
+ type WorkbenchChildLaunch = Readonly<{
1039
+ windowId: string;
1040
+ appId: string;
1041
+ releaseId: string;
1042
+ surfaceId: string;
1043
+ href: string;
1044
+ title?: string;
1045
+ openRequest: AppOpenRequest | null;
1046
+ }>;
1047
+ ```
1048
+
1049
+ A request to resolve and mount one child App, by its own identity.
1050
+
1051
+ ---
1052
+
1053
+ ### WorkbenchCommandInvocation
1054
+
1055
+ ```ts
1056
+ type WorkbenchCommandInvocation = Readonly<{
1057
+ arguments?: WhistleJsonValue;
1058
+ origin: WhistleExecutionOrigin;
1059
+ }>;
1060
+ ```
1061
+
1062
+ One invocation of a mounted child's own Release-declared command.
1063
+
1064
+ ---
1065
+
1066
+ ### WorkbenchChildEvents
1067
+
1068
+ ```ts
1069
+ type WorkbenchChildEvents = Readonly<{
1070
+ onComputerChoice?: () => Promise<void>;
1071
+ onNavigation?: (input) => Promise<void>;
1072
+ onAppOpen?: (input) => Promise<void>;
1073
+ onAppRole?: (role) => Promise<AppRoleChoice>;
1074
+ onSelectionChanged?: () => Promise<boolean>;
1075
+ onCommands?: (commands) => Promise<void>;
1076
+ onReservedChord?: (input) => Promise<void>;
1077
+ onFocus?: (focused) => Promise<void>;
1078
+ onNavigationState?: (state) => Promise<void>;
1079
+ onStatusItems?: (items) => Promise<void>;
1080
+ }>;
1081
+ ```
1082
+
1083
+ Events a mounted child raises toward its dashboard. A child's permission
1084
+ requests never reach the dashboard: the host asks the person itself. The host
1085
+ validates a child's commands against that child's own Release declaration before
1086
+ forwarding them, so the dashboard can present them but never widen them.
1087
+
1088
+ ---
1089
+
1090
+ ### WorkbenchChildHandle
1091
+
1092
+ ```ts
1093
+ type WorkbenchChildHandle = object;
1094
+ ```
1095
+
1096
+ One mounted child App; every method proxies to its real host-owned mount.
1097
+
1098
+ #### Methods
1099
+
1100
+ ##### setVisibility()
1101
+
1102
+ ```ts
1103
+ setVisibility(visibility): Promise<void>;
1104
+ ```
1105
+
1106
+ Show or hide the mounted child without changing its identity.
1107
+
1108
+ ###### Parameters
1109
+
1110
+ | Parameter | Type |
1111
+ | ------------ | ------------------------- |
1112
+ | `visibility` | `"hidden"` \| `"visible"` |
1113
+
1114
+ ###### Returns
1115
+
1116
+ `Promise`\<`void`\>
1117
+
1118
+ ##### reconfigure()
1119
+
1120
+ ```ts
1121
+ reconfigure(launch): Promise<void>;
1122
+ ```
1123
+
1124
+ Update the launch descriptor of the existing mount.
1125
+
1126
+ ###### Parameters
1127
+
1128
+ | Parameter | Type |
1129
+ | --------- | ----------------------------------------------- |
1130
+ | `launch` | [`WorkbenchChildLaunch`](#workbenchchildlaunch) |
1131
+
1132
+ ###### Returns
1133
+
1134
+ `Promise`\<`void`\>
1135
+
1136
+ ##### requestClose()
1137
+
1138
+ ```ts
1139
+ requestClose(): Promise<boolean>;
1140
+ ```
1141
+
1142
+ Ask whether the child permits a user-initiated close.
1143
+
1144
+ ###### Returns
1145
+
1146
+ `Promise`\<`boolean`\>
1147
+
1148
+ ##### requestBack()
1149
+
1150
+ ```ts
1151
+ requestBack(): Promise<boolean>;
1152
+ ```
1153
+
1154
+ Ask the child to go back one step in its own history; `true` when it did.
1155
+
1156
+ ###### Returns
1157
+
1158
+ `Promise`\<`boolean`\>
1159
+
1160
+ ##### activateStatus()
1161
+
1162
+ ```ts
1163
+ activateStatus(action): Promise<boolean>;
1164
+ ```
1165
+
1166
+ Deliver the person's use of a child's status item; `true` when it acted.
1167
+
1168
+ ###### Parameters
1169
+
1170
+ | Parameter | Type |
1171
+ | --------- | ----------------- |
1172
+ | `action` | `AppStatusAction` |
1173
+
1174
+ ###### Returns
1175
+
1176
+ `Promise`\<`boolean`\>
1177
+
1178
+ ##### invokeCommand()
1179
+
1180
+ ```ts
1181
+ invokeCommand(commandId, input): Promise<WhistleJsonValue | undefined>;
1182
+ ```
1183
+
1184
+ Run one of the child's currently presented commands.
1185
+
1186
+ ###### Parameters
1187
+
1188
+ | Parameter | Type |
1189
+ | ----------- | ----------------------------------------------------------- |
1190
+ | `commandId` | `string` |
1191
+ | `input` | [`WorkbenchCommandInvocation`](#workbenchcommandinvocation) |
1192
+
1193
+ ###### Returns
1194
+
1195
+ `Promise`\<`WhistleJsonValue` \| `undefined`\>
1196
+
1197
+ ##### dispose()
1198
+
1199
+ ```ts
1200
+ dispose(): Promise<void>;
1201
+ ```
1202
+
1203
+ Release the child mount and its resources.
1204
+
1205
+ ###### Returns
1206
+
1207
+ `Promise`\<`void`\>
1208
+
1209
+ ---
1210
+
1211
+ ### WorkbenchPlatformDestination
1212
+
1213
+ ```ts
1214
+ type WorkbenchPlatformDestination = Readonly<{
1215
+ id: string;
1216
+ label: string;
1217
+ }>;
1218
+ ```
1219
+
1220
+ A platform destination the host offers the dashboard, such as opening a host
1221
+ settings page. The host owns the labels and the navigation; the dashboard only
1222
+ presents them and asks the host to follow one.
1223
+
1224
+ ---
1225
+
1226
+ ### WorkbenchGillRequest
1227
+
1228
+ ```ts
1229
+ type WorkbenchGillRequest = typeof workbenchGillRequestSchema.Type;
1230
+ ```
1231
+
1232
+ Decoded Gill request for a surface in the host directory.
1233
+
1234
+ ---
1235
+
1236
+ ### DesktopGillSelection
1237
+
1238
+ ```ts
1239
+ type DesktopGillSelection = z.output<typeof desktopGillSelectionSchema>;
1240
+ ```
1241
+
1242
+ The identity of a Gill selected in a host-rendered settings view.
1243
+
1244
+ ---
1245
+
1246
+ ### DesktopGillAddition
1247
+
1248
+ ```ts
1249
+ type DesktopGillAddition = z.output<typeof desktopGillAdditionSchema>;
1250
+ ```
1251
+
1252
+ A decoded request to add a Gill placement.
1253
+
1254
+ ---
1255
+
1256
+ ### WorkbenchDesktopSettings
1257
+
1258
+ ```ts
1259
+ type WorkbenchDesktopSettings = object;
1260
+ ```
1261
+
1262
+ A dashboard supplies its own arranger, not an endpoint for ordinary Apps.
1263
+
1264
+ #### Properties
1265
+
1266
+ ##### readGill
1267
+
1268
+ ```ts
1269
+ readGill: (input) => Promise<z.output<typeof desktopGillSizesSchema>>;
1270
+ ```
1271
+
1272
+ Read the sizes currently assigned to this Gill in the dashboard layout.
1273
+
1274
+ ###### Parameters
1275
+
1276
+ | Parameter | Type |
1277
+ | --------- | ----------------------------------------------- |
1278
+ | `input` | [`DesktopGillSelection`](#desktopgillselection) |
1279
+
1280
+ ###### Returns
1281
+
1282
+ `Promise`\<`z.output`\<_typeof_
1283
+ [`desktopGillSizesSchema`](#desktopgillsizesschema)\>\>
1284
+
1285
+ ##### addGill
1286
+
1287
+ ```ts
1288
+ addGill: (input) => Promise<void>;
1289
+ ```
1290
+
1291
+ Add a Gill at the requested size to the dashboard layout.
1292
+
1293
+ ###### Parameters
1294
+
1295
+ | Parameter | Type |
1296
+ | --------- | --------------------------------------------- |
1297
+ | `input` | [`DesktopGillAddition`](#desktopgilladdition) |
1298
+
1299
+ ###### Returns
1300
+
1301
+ `Promise`\<`void`\>
1302
+
1303
+ ##### removeGill
1304
+
1305
+ ```ts
1306
+ removeGill: (input) => Promise<void>;
1307
+ ```
1308
+
1309
+ Remove this Gill from the dashboard layout.
1310
+
1311
+ ###### Parameters
1312
+
1313
+ | Parameter | Type |
1314
+ | --------- | ----------------------------------------------- |
1315
+ | `input` | [`DesktopGillSelection`](#desktopgillselection) |
1316
+
1317
+ ###### Returns
1318
+
1319
+ `Promise`\<`void`\>
1320
+
1321
+ ---
1322
+
1323
+ ### WorkbenchDesktopRegistration
1324
+
1325
+ ```ts
1326
+ type WorkbenchDesktopRegistration = object;
1327
+ ```
1328
+
1329
+ A registration lease; close it when the dashboard unmounts.
1330
+
1331
+ #### Methods
1332
+
1333
+ ##### close()
1334
+
1335
+ ```ts
1336
+ close(): Promise<void>;
1337
+ ```
1338
+
1339
+ Release this host registration.
1340
+
1341
+ ###### Returns
1342
+
1343
+ `Promise`\<`void`\>
1344
+
1345
+ ---
1346
+
1347
+ ### WorkbenchGillWatch
1348
+
1349
+ ```ts
1350
+ type WorkbenchGillWatch = object;
1351
+ ```
1352
+
1353
+ A host-owned change subscription; close it when no longer visible.
1354
+
1355
+ #### Methods
1356
+
1357
+ ##### close()
1358
+
1359
+ ```ts
1360
+ close(): Promise<void>;
1361
+ ```
1362
+
1363
+ Release this host registration.
1364
+
1365
+ ###### Returns
1366
+
1367
+ `Promise`\<`void`\>
1368
+
1369
+ ## Variables
1370
+
1371
+ ### workbenchGillRequestSchema
1372
+
1373
+ ```ts
1374
+ const workbenchGillRequestSchema: Struct<{
1375
+ viewId: String;
1376
+ params: optional<$Record<String, String>>;
1377
+ after: optional<String>;
1378
+ options: optional<String>;
1379
+ surfaceId: String;
1380
+ }>;
1381
+ ```
1382
+
1383
+ A declared Gill request addressed to one host-selected App surface.
1384
+
1385
+ ---
1386
+
1387
+ ### desktopGillSelectionSchema
1388
+
1389
+ ```ts
1390
+ const desktopGillSelectionSchema: ZodObject<
1391
+ {
1392
+ surfaceId: ZodString;
1393
+ gillId: ZodString;
1394
+ },
1395
+ $strict
1396
+ >;
1397
+ ```
1398
+
1399
+ The member chooses a declared Gill and size in host-rendered Settings.
1400
+
1401
+ ---
1402
+
1403
+ ### desktopGillSizesSchema
1404
+
1405
+ ```ts
1406
+ const desktopGillSizesSchema: ZodArray<
1407
+ ZodEnum<{
1408
+ S: "S";
1409
+ M: "M";
1410
+ L: "L";
1411
+ }>
1412
+ >;
1413
+ ```
1414
+
1415
+ The dashboard layout sizes currently assigned to one Gill.
1416
+
1417
+ ---
1418
+
1419
+ ### desktopGillAdditionSchema
1420
+
1421
+ ```ts
1422
+ const desktopGillAdditionSchema: ZodObject<
1423
+ {
1424
+ surfaceId: ZodString;
1425
+ gillId: ZodString;
1426
+ size: ZodEnum<{
1427
+ S: "S";
1428
+ M: "M";
1429
+ L: "L";
1430
+ }>;
1431
+ },
1432
+ $strict
1433
+ >;
1434
+ ```
1435
+
1436
+ A selected Gill and the layout size requested for a new placement.
1437
+
1438
+ ---
1439
+
1440
+ ### desktopSettingsHandlerSchema
1441
+
1442
+ ```ts
1443
+ const desktopSettingsHandlerSchema: ZodPipe<
1444
+ ZodUnknown,
1445
+ ZodTransform<object & object, unknown>
1446
+ >;
1447
+ ```
1448
+
1449
+ Shape of the arranger callbacks the shell supplies to its host.
1450
+
1451
+ ---
1452
+
1453
+ ### appOpenRequestSchema
1454
+
1455
+ ```ts
1456
+ const appOpenRequestSchema: Union<
1457
+ readonly [
1458
+ Struct<{
1459
+ kind: Literal<"compose">;
1460
+ requestId: String;
1461
+ text: String;
1462
+ }>,
1463
+ Struct<{
1464
+ kind: Literal<"navigate">;
1465
+ requestId: String;
1466
+ params: $Array<
1467
+ Struct<{
1468
+ key: String;
1469
+ value: String;
1470
+ }>
1471
+ >;
1472
+ }>,
1473
+ ]
1474
+ >;
1475
+ ```
1476
+
1477
+ Runtime check for an App-open handoff arriving across an untrusted boundary.
1478
+
1479
+ ## Functions
1480
+
1481
+ ### createBrowserActionHandler()
1482
+
1483
+ ```ts
1484
+ function createBrowserActionHandler(
1485
+ options,
1486
+ ): (request) => Promise<AppBrowserActionOutcome>;
1487
+ ```
1488
+
1489
+ Browser effects stay in the trusted host, bound to one mounted App frame.
1490
+
1491
+ #### Parameters
1492
+
1493
+ | Parameter | Type |
1494
+ | -------------------- | ------------------------------------------------------------------------------------ |
1495
+ | `options` | \{ `frame`: `HTMLIFrameElement`; `hostWindow`: `Window`; `signal`: `AbortSignal`; \} |
1496
+ | `options.frame` | `HTMLIFrameElement` |
1497
+ | `options.hostWindow` | `Window` |
1498
+ | `options.signal` | `AbortSignal` |
1499
+
1500
+ #### Returns
1501
+
1502
+ (`request`) => `Promise`\<`AppBrowserActionOutcome`\>
1503
+
1504
+ ## References
1505
+
1506
+ ### appAddressSchema
1507
+
1508
+ Re-exports [appAddressSchema](shell/app-directory.md#appaddressschema)
1509
+
1510
+ ---
1511
+
1512
+ ### appAuthorityEnforcementSchema
1513
+
1514
+ Re-exports
1515
+ [appAuthorityEnforcementSchema](shell/app-directory.md#appauthorityenforcementschema)
1516
+
1517
+ ---
1518
+
1519
+ ### AppAddress
1520
+
1521
+ Re-exports [AppAddress](shell/app-directory.md#appaddress)
1522
+
1523
+ ---
1524
+
1525
+ ### addressKey
1526
+
1527
+ Re-exports [addressKey](shell/app-directory.md#addresskey)
1528
+
1529
+ ---
1530
+
1531
+ ### AppAuthorityEnforcement
1532
+
1533
+ Re-exports
1534
+ [AppAuthorityEnforcement](shell/app-directory.md#appauthorityenforcement)
1535
+
1536
+ ---
1537
+
1538
+ ### AppDirectoryGill
1539
+
1540
+ Re-exports [AppDirectoryGill](shell/app-directory.md#appdirectorygill)
1541
+
1542
+ ---
1543
+
1544
+ ### appDirectoryEntrySchema
1545
+
1546
+ Re-exports
1547
+ [appDirectoryEntrySchema](shell/app-directory.md#appdirectoryentryschema)
1548
+
1549
+ ---
1550
+
1551
+ ### AppDirectoryEntry
1552
+
1553
+ Re-exports [AppDirectoryEntry](shell/app-directory.md#appdirectoryentry)
1554
+
1555
+ ---
1556
+
1557
+ ### appRoleSelectionSchema
1558
+
1559
+ Re-exports
1560
+ [appRoleSelectionSchema](shell/app-directory.md#approleselectionschema)
1561
+
1562
+ ---
1563
+
1564
+ ### appCatalogEntrySchema
1565
+
1566
+ Re-exports [appCatalogEntrySchema](shell/app-directory.md#appcatalogentryschema)
1567
+
1568
+ ---
1569
+
1570
+ ### appCatalogResponseSchema
1571
+
1572
+ Re-exports
1573
+ [appCatalogResponseSchema](shell/app-directory.md#appcatalogresponseschema)
1574
+
1575
+ ---
1576
+
1577
+ ### AppCatalog
1578
+
1579
+ Re-exports [AppCatalog](shell/app-directory.md#appcatalog)
1580
+
1581
+ ---
1582
+
1583
+ ### appCatalogBrokerResultSchema
1584
+
1585
+ Re-exports
1586
+ [appCatalogBrokerResultSchema](shell/app-directory.md#appcatalogbrokerresultschema)
1587
+
1588
+ ---
1589
+
1590
+ ### AppCommandOptional
1591
+
1592
+ Re-exports [AppCommandOptional](shell/command-host.md#appcommandoptional)
1593
+
1594
+ ---
1595
+
1596
+ ### AppCommandDeclaration
1597
+
1598
+ Re-exports [AppCommandDeclaration](shell/command-host.md#appcommanddeclaration)
1599
+
1600
+ ---
1601
+
1602
+ ### commandPaletteReservedChordForPlatform
1603
+
1604
+ Re-exports
1605
+ [commandPaletteReservedChordForPlatform](shell/command-host.md#commandpalettereservedchordforplatform)
1606
+
1607
+ ---
1608
+
1609
+ ### commandPaletteReservedChordForUserAgent
1610
+
1611
+ Re-exports
1612
+ [commandPaletteReservedChordForUserAgent](shell/command-host.md#commandpalettereservedchordforuseragent)
1613
+
1614
+ ---
1615
+
1616
+ ### appDirectorySourceId
1617
+
1618
+ Re-exports [appDirectorySourceId](shell/command-host.md#appdirectorysourceid)
1619
+
1620
+ ---
1621
+
1622
+ ### AppSurfaceCommandMount
1623
+
1624
+ Re-exports
1625
+ [AppSurfaceCommandMount](shell/command-host.md#appsurfacecommandmount)
1626
+
1627
+ ---
1628
+
1629
+ ### PaneCommands
1630
+
1631
+ Re-exports [PaneCommands](shell/command-host.md#panecommands)
1632
+
1633
+ ---
1634
+
1635
+ ### PaneCommandMount
1636
+
1637
+ Re-exports [PaneCommandMount](shell/command-host.md#panecommandmount)
1638
+
1639
+ ---
1640
+
1641
+ ### AppSurfaceCommandHost
1642
+
1643
+ Re-exports [AppSurfaceCommandHost](shell/command-host.md#appsurfacecommandhost)
1644
+
1645
+ ---
1646
+
1647
+ ### createAppSurfaceCommandHost
1648
+
1649
+ Re-exports
1650
+ [createAppSurfaceCommandHost](shell/command-host.md#createappsurfacecommandhost)
1651
+
1652
+ ---
1653
+
1654
+ ### backBinding
1655
+
1656
+ Re-exports [backBinding](shell/commands.md#backbinding)
1657
+
1658
+ ---
1659
+
1660
+ ### ShellActions
1661
+
1662
+ Re-exports [ShellActions](shell/commands.md#shellactions)
1663
+
1664
+ ---
1665
+
1666
+ ### shellCommands
1667
+
1668
+ Re-exports [shellCommands](shell/commands.md#shellcommands)
1669
+
1670
+ ---
1671
+
1672
+ ### ShellChord
1673
+
1674
+ Re-exports [ShellChord](shell/keys.md#shellchord)
1675
+
1676
+ ---
1677
+
1678
+ ### KeyEventFacts
1679
+
1680
+ Re-exports [KeyEventFacts](shell/keys.md#keyeventfacts)
1681
+
1682
+ ---
1683
+
1684
+ ### parseChord
1685
+
1686
+ Re-exports [parseChord](shell/keys.md#parsechord)
1687
+
1688
+ ---
1689
+
1690
+ ### chordMatches
1691
+
1692
+ Re-exports [chordMatches](shell/keys.md#chordmatches)
1693
+
1694
+ ---
1695
+
1696
+ ### LeaderKey
1697
+
1698
+ Re-exports [LeaderKey](shell/keys.md#leaderkey)
1699
+
1700
+ ---
1701
+
1702
+ ### leaderKeys
1703
+
1704
+ Re-exports [leaderKeys](shell/keys.md#leaderkeys)
1705
+
1706
+ ---
1707
+
1708
+ ### leaderKeyMatches
1709
+
1710
+ Re-exports [leaderKeyMatches](shell/keys.md#leaderkeymatches)
1711
+
1712
+ ---
1713
+
1714
+ ### ShellKeyHost
1715
+
1716
+ Re-exports [ShellKeyHost](shell/keys.md#shellkeyhost)
1717
+
1718
+ ---
1719
+
1720
+ ### installShellKeys
1721
+
1722
+ Re-exports [installShellKeys](shell/keys.md#installshellkeys)
1723
+
1724
+ ---
1725
+
1726
+ ### WindowLaunch
1727
+
1728
+ Re-exports [WindowLaunch](shell/window-manager.md#windowlaunch)
1729
+
1730
+ ---
1731
+
1732
+ ### WindowStatus
1733
+
1734
+ Re-exports [WindowStatus](shell/window-manager.md#windowstatus)
1735
+
1736
+ ---
1737
+
1738
+ ### WindowHost
1739
+
1740
+ Re-exports [WindowHost](shell/window-manager.md#windowhost)
1741
+
1742
+ ---
1743
+
1744
+ ### WindowEvents
1745
+
1746
+ Re-exports [WindowEvents](shell/window-manager.md#windowevents)
1747
+
1748
+ ---
1749
+
1750
+ ### WindowProjection
1751
+
1752
+ Re-exports [WindowProjection](shell/window-manager.md#windowprojection)
1753
+
1754
+ ---
1755
+
1756
+ ### WindowsProjection
1757
+
1758
+ Re-exports [WindowsProjection](shell/window-manager.md#windowsprojection)
1759
+
1760
+ ---
1761
+
1762
+ ### hasVisibleWindows
1763
+
1764
+ Re-exports [hasVisibleWindows](shell/window-manager.md#hasvisiblewindows)
1765
+
1766
+ ---
1767
+
1768
+ ### WindowMount
1769
+
1770
+ Re-exports [WindowMount](shell/window-manager.md#windowmount)
1771
+
1772
+ ---
1773
+
1774
+ ### WindowManager
1775
+
1776
+ Re-exports [WindowManager](shell/window-manager.md#windowmanager)
1777
+
1778
+ ---
1779
+
1780
+ ### WindowManagerOptions
1781
+
1782
+ Re-exports [WindowManagerOptions](shell/window-manager.md#windowmanageroptions)
1783
+
1784
+ ---
1785
+
1786
+ ### createWindowManager
1787
+
1788
+ Re-exports [createWindowManager](shell/window-manager.md#createwindowmanager)