Skip to content
API reference

nacre

Import
import * as api from "@fungi.computer/nacre";
Kind Export Description
class WorkbenchHost Child-window, command and callback lifetime for the trusted shell the host composes into its own document. Each child mounts inside the window slot the shell hands it, so the browser moves, clips and stacks it with that window; the host never positions a child itself.
type alias TeamWorkbenchChildEvents Team dashboards additionally relay the selected Agent Session to the Hub.
type alias TeamWorkbenchHostHandle Team/Computer/App-directory reads and child-App hosting for the trusted shell. The host composes the shell into its own top-level document, so the shell runs with the host’s escalated permissions; each child App still runs in its own sandboxed frame with its own separately resolved approvals.
type alias WorkbenchResolvedChild A launch checked against the embedding host’s own installation authority.
type alias WorkbenchChildSurface The host’s real mounted App; selection and lease replacement stay with it.
type alias WorkbenchChildMountOptions Inputs shared child-window mechanics supply to the host’s admitted mount.
type alias WorkbenchPreparedChild Host-owned admission and lifetime of one prepared child.
type alias WorkbenchHostServices Host services retain their own Team, account, Gill and consent authority.
type alias WorkbenchHostControls Controls offered by the real embedding host, never grants lent by the App.
type alias WorkbenchWarningEvent Retained host warning identifiers; adapters own their diagnostic sink.
type alias WorkbenchWarningFields Fields of a retained child/settings notification failure.
type alias WorkbenchHostOptions One workbench’s child mechanics over host-owned admission and services.
type alias WorkbenchChildLaunch A request to resolve and mount one child App, by its own identity.
type alias WorkbenchCommandInvocation One invocation of a mounted child’s own Release-declared command.
type alias WorkbenchChildEvents Events a mounted child raises toward its dashboard. A child’s permission requests never reach the dashboard: the host asks the person itself. The host validates a child’s commands against that child’s own Release declaration before forwarding them, so the dashboard can present them but never widen them.
type alias WorkbenchChildHandle One mounted child App; every method proxies to its real host-owned mount.
type alias WorkbenchPlatformDestination A platform destination the host offers the dashboard, such as opening a host settings page. The host owns the labels and the navigation; the dashboard only presents them and asks the host to follow one.
type alias WorkbenchGillRequest Decoded Gill request for a surface in the host directory.
type alias DesktopGillSelection The identity of a Gill selected in a host-rendered settings view.
type alias DesktopGillAddition A decoded request to add a Gill placement.
type alias WorkbenchDesktopSettings A dashboard supplies its own arranger, not an endpoint for ordinary Apps.
type alias WorkbenchDesktopRegistration A registration lease; close it when the dashboard unmounts.
type alias WorkbenchGillWatch A host-owned change subscription; close it when no longer visible.
type alias TeamComputer A decoded Team Computer inventory record.
constant workbenchGillRequestSchema A declared Gill request addressed to one host-selected App surface.
constant desktopGillSelectionSchema The member chooses a declared Gill and size in host-rendered Settings.
constant desktopGillSizesSchema The dashboard layout sizes currently assigned to one Gill.
constant desktopGillAdditionSchema A selected Gill and the layout size requested for a new placement.
constant desktopSettingsHandlerSchema Shape of the arranger callbacks the shell supplies to its host.
constant appOpenRequestSchema Runtime check for an App-open handoff arriving across an untrusted boundary.
constant teamComputerSchema One Team Computer in a host’s inventory: the wire of computers().
constant teamComputerDirectorySchema One page of a host’s Team Computer inventory.
function createBrowserActionHandler() Browser effects stay in the trusted host, bound to one mounted App frame.

Child-window, command and callback lifetime for the trusted shell the host composes into its own document. Each child mounts inside the window slot the shell hands it, so the browser moves, clips and stacks it with that window; the host never positions a child itself.

Signature
new WorkbenchHost(options): WorkbenchHost;
Parameter Type
options WorkbenchHostOptions

WorkbenchHost

Signature
team(): Promise<WhistleJsonValue>;

The authenticated Team hosting this dashboard; the caller parses it.

Promise<WhistleJsonValue>

Signature
TeamWorkbenchHostHandle.team;
Signature
computers(input): Promise<WhistleJsonValue>;

A page of the Team’s Computer inventory; the caller parses it.

Parameter Type
input Readonly<{ limit: number; offset: number; }>

Promise<WhistleJsonValue>

Signature
TeamWorkbenchHostHandle.computers;
Signature
directory(): Promise<WhistleJsonValue>;

The Team’s effective App directory and role choices; the caller parses it.

Promise<WhistleJsonValue>

Signature
TeamWorkbenchHostHandle.directory;
Signature
requestGill(input): Promise<
| {
viewId: string;
title: string;
state: "empty";
rows: readonly [];
next?: string;
}
| {
viewId: string;
title: string;
state: "error";
rows: readonly [];
reason?: "exec_isolation_required" | "params_required";
error: string;
recovery?: | {
kind: "configure";
param: string;
}
| {
kind: "open";
};
}
| {
viewId: string;
title: string;
state: "full";
rows: readonly object[];
next?: string;
}
| {
options: readonly object[];
next?: string;
}>;

Invoke a declared Gill of an admitted App in this Team. No caller-provided resource data.

Parameter Type Description
input { viewId: string; params?: { [key: string]: string; }; after?: string; options?: string; surfaceId: string; } -
input.viewId string -
input.params? { [key: string]: string; } -
input.after? string -
input.options? string -
input.surfaceId string The App surface the Gill request is addressed to.

Promise< | { viewId: string; title: string; state: "empty"; rows: readonly []; next?: string; } | { viewId: string; title: string; state: "error"; rows: readonly []; reason?: "exec_isolation_required" | "params_required"; error: string; recovery?: | { kind: "configure"; param: string; } | { kind: "open"; }; } | { viewId: string; title: string; state: "full"; rows: readonly object[]; next?: string; } | { options: readonly object[]; next?: string; }>

Signature
TeamWorkbenchHostHandle.requestGill;
Signature
watchGillChanges(...input): Promise<WorkbenchGillWatch>;

Observe resource changes; only the host owns the authenticated stream. Close while covered.

Parameter Type
…input [object, () => Promise<void>]

Promise<WorkbenchGillWatch>

Signature
TeamWorkbenchHostHandle.watchGillChanges;
Signature
platformDestinations(): Promise<readonly Readonly<{
id: string;
label: string;
}>[]>;

The platform destinations the host currently offers.

Promise<readonly Readonly<{ id: string; label: string; }>[]>

Signature
TeamWorkbenchHostHandle.platformDestinations;
Signature
openPlatformDestination(id): Promise<void>;

Ask the host to navigate to one offered platform destination.

Parameter Type
id string

Promise<void>

Signature
TeamWorkbenchHostHandle.openPlatformDestination;
Signature
settingsSections(): Promise<readonly string[] | null>;

Describe the actual controls without offering unsupported Settings.

Promise<readonly string[] | null>

Signature
TeamWorkbenchHostHandle.settingsSections;
Signature
takeAppOpenRequest(): Promise<
| {
role: string;
intent: | {
kind: "compose";
text: string;
}
| {
kind: "navigate";
params: readonly object[];
};
}
| {
appId: string;
intent: | {
kind: "compose";
text: string;
}
| {
kind: "navigate";
params: readonly object[];
};
}
| null>;

Take, once, the App-open handoff the visitor’s Hub address carried (for example ?open=inbox&intent=compose). The host consumes it from its own address; the dashboard opens it like any other apps.open request.

Promise< | { role: string; intent: | { kind: "compose"; text: string; } | { kind: "navigate"; params: readonly object[]; }; } | { appId: string; intent: | { kind: "compose"; text: string; } | { kind: "navigate"; params: readonly object[]; }; } | null>

Signature
TeamWorkbenchHostHandle.takeAppOpenRequest;
Signature
registerDesktopSettings(handler): Promise<WorkbenchDesktopRegistration>;

Bind the admitted dashboard’s arranger to the host’s member-consent UI. Only the host invokes it; ordinary Apps can only open their own Settings.

Parameter Type
handler unknown

Promise<WorkbenchDesktopRegistration>

Signature
TeamWorkbenchHostHandle.registerDesktopSettings;
Signature
openSettings(location): Promise<void>;

Open the host’s own Team settings at a dashboard-defined location (the host parses it). Administration there runs with the signed-in person’s own authority in host-rendered UI, never through the dashboard. Resolves when Settings close, so the dashboard restores its own focus.

Parameter Type
location WhistleJsonValue

Promise<void>

Signature
TeamWorkbenchHostHandle.openSettings;
Signature
memberAvatar(): Promise<WhistleJsonValue>;

The signed-in person’s own avatar preference; the caller parses it.

Promise<WhistleJsonValue>

Signature
TeamWorkbenchHostHandle.memberAvatar;
Signature
watchSettingsChanges(onChanged): Promise<void>;

Hear when host-rendered settings or App access consent changed the Team’s Apps or the person’s settings, so the dashboard refreshes.

Parameter Type
onChanged () => Promise<void>

Promise<void>

Signature
TeamWorkbenchHostHandle.watchSettingsChanges;
Signature
dispose: void;

The shell unmounted: stop notifying its callbacks.

void

Signature
mount(
container,
input,
events
): Promise<WorkbenchChildHandle>;

Resolve, authorize and mount one child App inside container, the shell’s own slot in that App’s window. The host never moves the child: the shell keeps container attached and moves its window instead.

Parameter Type
container HTMLElement
input WorkbenchChildLaunch
events TeamWorkbenchChildEvents

Promise<WorkbenchChildHandle>

Signature
TeamWorkbenchHostHandle.mount;
Signature
reportAgentSessionSelection(windowId, selection): Promise<void>;

Bind one mounted child’s explicit Agent Session selection to the host.

Parameter Type
windowId string
selection | Readonly<{ agentId: string; sessionId: string; }> | null

Promise<void>

Signature
TeamWorkbenchHostHandle.reportAgentSessionSelection;

TeamWorkbenchChildEventstype alias

Section titled “TeamWorkbenchChildEvents”
Signature
type TeamWorkbenchChildEvents = WorkbenchChildEvents &
Readonly<{
onAgentSessionSelection: (selection) => Promise<void>;
}>;

Team dashboards additionally relay the selected Agent Session to the Hub.


TeamWorkbenchHostHandletype alias

Section titled “TeamWorkbenchHostHandle”
Signature
type TeamWorkbenchHostHandle = object;

Team/Computer/App-directory reads and child-App hosting for the trusted shell. The host composes the shell into its own top-level document, so the shell runs with the host’s escalated permissions; each child App still runs in its own sandboxed frame with its own separately resolved approvals.

Signature
team(): Promise<WhistleJsonValue>;

The authenticated Team hosting this dashboard; the caller parses it.

Promise<WhistleJsonValue>

Signature
computers(input): Promise<WhistleJsonValue>;

A page of the Team’s Computer inventory; the caller parses it.

Parameter Type
input Readonly<{ limit: number; offset: number; }>

Promise<WhistleJsonValue>

Signature
directory(): Promise<WhistleJsonValue>;

The Team’s effective App directory and role choices; the caller parses it.

Promise<WhistleJsonValue>

Signature
requestGill(input): Promise<
| {
viewId: Schema.String;
title: Schema.String;
state: Schema.Literal<"empty">;
rows: Schema.Tuple<readonly []>;
next?: Schema.optional<Schema.String>;
}
| {
viewId: Schema.String;
title: Schema.String;
state: Schema.Literal<"error">;
rows: Schema.Tuple<readonly []>;
reason?: Schema.optional<Schema.Literals<readonly ["exec_isolation_required", "params_required"]>>;
error: Schema.String;
recovery?: Schema.optional<Schema.Union<readonly [Schema.Struct<{
kind: Schema.Literal<...>;
param: Schema.String;
}>, Schema.Struct<{
kind: Schema.Literal<...>;
}>]>>;
}
| {
viewId: Schema.String;
title: Schema.String;
state: Schema.Literal<"full">;
rows: Schema.$Array<Schema.Struct<{
id: Schema.String;
title: Schema.String;
detail: Schema.optional<Schema.String>;
tone: Schema.optional<Schema.Literals<readonly [..., ..., ..., ..., ...]>>;
status: Schema.optional<Schema.Struct<{
label: Schema.String;
tone: Schema.Literals<...>;
}>>;
open: Schema.optional<Schema.Struct<{
params: Schema.$Array<...>;
}>>;
}>>;
next?: Schema.optional<Schema.String>;
}
| {
options: Schema.$Array<Schema.Struct<{
value: Schema.String;
label: Schema.String;
detail: Schema.optional<Schema.String>;
}>>;
next?: Schema.optional<Schema.String>;
}>;

Invoke a declared Gill of an admitted App in this Team. No caller-provided resource data.

Parameter Type Description
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; } -
input.viewId Schema.String -
input.params? Schema.optional<Schema.$Record<Schema.String, Schema.String>> -
input.after? Schema.optional<Schema.String> -
input.options? Schema.optional<Schema.String> -
input.surfaceId string The App surface the Gill request is addressed to.

Promise< | { viewId: Schema.String; title: Schema.String; state: Schema.Literal<"empty">; rows: Schema.Tuple<readonly []>; next?: Schema.optional<Schema.String>; } | { viewId: Schema.String; title: Schema.String; state: Schema.Literal<"error">; rows: Schema.Tuple<readonly []>; reason?: Schema.optional<Schema.Literals<readonly ["exec_isolation_required", "params_required"]>>; error: Schema.String; recovery?: Schema.optional<Schema.Union<readonly [Schema.Struct<{ kind: Schema.Literal<…>; param: Schema.String; }>, Schema.Struct<{ kind: Schema.Literal<…>; }>]>>; } | { viewId: Schema.String; title: Schema.String; state: Schema.Literal<"full">; rows: Schema.$Array<Schema.Struct<{ id: Schema.String; title: Schema.String; detail: Schema.optional<Schema.String>; tone: Schema.optional<Schema.Literals<readonly […, …, …, …, …]>>; status: Schema.optional<Schema.Struct<{ label: Schema.String; tone: Schema.Literals<…>; }>>; open: Schema.optional<Schema.Struct<{ params: Schema.$Array<…>; }>>; }>>; next?: Schema.optional<Schema.String>; } | { options: Schema.$Array<Schema.Struct<{ value: Schema.String; label: Schema.String; detail: Schema.optional<Schema.String>; }>>; next?: Schema.optional<Schema.String>; }>

Signature
watchGillChanges(input, onChanged): Promise<WorkbenchGillWatch>;

Observe resource changes; only the host owns the authenticated stream. Close while covered.

Parameter Type Description
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; } -
input.viewId Schema.String -
input.params? Schema.optional<Schema.$Record<Schema.String, Schema.String>> -
input.after? Schema.optional<Schema.String> -
input.options? Schema.optional<Schema.String> -
input.surfaceId string The App surface the Gill request is addressed to.
onChanged () => Promise<void> -

Promise<WorkbenchGillWatch>

Signature
mount(
container,
input,
events
): Promise<WorkbenchChildHandle>;

Resolve, authorize and mount one child App inside container, the shell’s own slot in that App’s window. The host never moves the child: the shell keeps container attached and moves its window instead.

Parameter Type
container HTMLElement
input WorkbenchChildLaunch
events TeamWorkbenchChildEvents

Promise<WorkbenchChildHandle>

Signature
reportAgentSessionSelection(windowId, selection): Promise<void>;

Bind one mounted child’s explicit Agent Session selection to the host.

Parameter Type
windowId string
selection | Readonly<{ agentId: string; sessionId: string; }> | null

Promise<void>

Signature
platformDestinations(): Promise<readonly Readonly<{
id: string;
label: string;
}>[]>;

The platform destinations the host currently offers.

Promise<readonly Readonly<{ id: string; label: string; }>[]>

Signature
settingsSections(): Promise<readonly string[] | null>;

Offered Settings categories, or null for unrestricted host controls.

Promise<readonly string[] | null>

Signature
openPlatformDestination(id): Promise<void>;

Ask the host to navigate to one offered platform destination.

Parameter Type
id string

Promise<void>

Signature
takeAppOpenRequest(): Promise<
| {
role: Schema.String;
intent: Schema.Union<readonly [Schema.Struct<{
kind: Schema.Literal<"compose">;
text: Schema.String;
}>, Schema.Struct<{
kind: Schema.Literal<"navigate">;
params: Schema.$Array<Schema.Struct<...>>;
}>]>;
}
| {
appId: Schema.String;
intent: Schema.Union<readonly [Schema.Struct<{
kind: Schema.Literal<"compose">;
text: Schema.String;
}>, Schema.Struct<{
kind: Schema.Literal<"navigate">;
params: Schema.$Array<Schema.Struct<...>>;
}>]>;
}
| null>;

Take, once, the App-open handoff the visitor’s Hub address carried (for example ?open=inbox&intent=compose). The host consumes it from its own address; the dashboard opens it like any other apps.open request.

Promise< | { role: Schema.String; intent: Schema.Union<readonly [Schema.Struct<{ kind: Schema.Literal<"compose">; text: Schema.String; }>, Schema.Struct<{ kind: Schema.Literal<"navigate">; params: Schema.$Array<Schema.Struct<…>>; }>]>; } | { appId: Schema.String; intent: Schema.Union<readonly [Schema.Struct<{ kind: Schema.Literal<"compose">; text: Schema.String; }>, Schema.Struct<{ kind: Schema.Literal<"navigate">; params: Schema.$Array<Schema.Struct<…>>; }>]>; } | null>

Signature
openSettings(location): Promise<void>;

Open the host’s own Team settings at a dashboard-defined location (the host parses it). Administration there runs with the signed-in person’s own authority in host-rendered UI, never through the dashboard. Resolves when Settings close, so the dashboard restores its own focus.

Parameter Type
location WhistleJsonValue

Promise<void>

Signature
registerDesktopSettings(handler): Promise<WorkbenchDesktopRegistration>;

Bind the admitted dashboard’s arranger to the host’s member-consent UI. Only the host invokes it; ordinary Apps can only open their own Settings.

Parameter Type
handler WorkbenchDesktopSettings

Promise<WorkbenchDesktopRegistration>

Signature
watchSettingsChanges(onChanged): Promise<void>;

Hear when host-rendered settings or App access consent changed the Team’s Apps or the person’s settings, so the dashboard refreshes.

Parameter Type
onChanged () => Promise<void>

Promise<void>

Signature
memberAvatar(): Promise<WhistleJsonValue>;

The signed-in person’s own avatar preference; the caller parses it.

Promise<WhistleJsonValue>


WorkbenchResolvedChildtype alias

Section titled “WorkbenchResolvedChild”
Signature
type WorkbenchResolvedChild = Readonly<{
launch: Omit<WorkbenchChildLaunch, "title">;
title?: string;
}>;

A launch checked against the embedding host’s own installation authority.


WorkbenchChildSurfacetype alias

Section titled “WorkbenchChildSurface”
Signature
type WorkbenchChildSurface = Pick<
WorkbenchChildHandle,
| "setVisibility"
| "requestClose"
| "requestBack"
| "activateStatus"
| "activateNavigation"
> &
object;

The host’s real mounted App; selection and lease replacement stay with it.

Name Type Description
dispose() () => void Release the mounted child or host-owned observations.
reconfigure() (launch) => Promise<void> Replace the host-admitted selection while retaining the child document.

WorkbenchChildMountOptionstype alias

Section titled “WorkbenchChildMountOptions”
Signature
type WorkbenchChildMountOptions = Readonly<{
container: HTMLElement;
hostWindow: Window;
title?: string;
events: TeamWorkbenchChildEvents;
commands: AppSurfaceCommandMount;
onDesktopSettings: (surfaceId) => Promise<void>;
onPermissionRequest: (input, context) => Promise<AppPermissionOutcome>;
}>;

Inputs shared child-window mechanics supply to the host’s admitted mount.


WorkbenchPreparedChildtype alias

Section titled “WorkbenchPreparedChild”
Signature
type WorkbenchPreparedChild = Readonly<{
commands: readonly AppCommandDeclaration[];
mount: Promise<WorkbenchChildSurface>;
dispose: Promise<void>;
}>;

Host-owned admission and lifetime of one prepared child.


WorkbenchHostServicestype alias

Section titled “WorkbenchHostServices”
Signature
type WorkbenchHostServices = Pick<
TeamWorkbenchHostHandle,
| "team"
| "computers"
| "directory"
| "requestGill"
| "watchGillChanges"
| "memberAvatar"
> &
Readonly<{
suggestDesktopSettings: Promise<void>;
dispose: void;
}>;

Host services retain their own Team, account, Gill and consent authority.


WorkbenchHostControlstype alias

Section titled “WorkbenchHostControls”
Signature
type WorkbenchHostControls = Readonly<{
sections?: readonly string[];
parseSettings: WhistleJsonValue;
openSettings: void;
subscribeSettingsClosed: () => void;
subscribeChanges: () => void;
attachDesktopSettings: () => void;
requestAppAccess: Promise<AppPermissionOutcome>;
}>;

Controls offered by the real embedding host, never grants lent by the App.


WorkbenchWarningEventtype alias

Section titled “WorkbenchWarningEvent”
Signature
type WorkbenchWarningEvent =
| "team_workbench_commands_failed"
| "team_workbench_settings_notification_failed"
| "team_workbench_focus_notification_failed";

Retained host warning identifiers; adapters own their diagnostic sink.


WorkbenchWarningFieldstype alias

Section titled “WorkbenchWarningFields”
Signature
type WorkbenchWarningFields =
| Readonly<{
cause: unknown;
}>
| Readonly<{
stage: "update" | "dispose";
cause: unknown;
}>;

Fields of a retained child/settings notification failure.


WorkbenchHostOptionstype alias

Section titled “WorkbenchHostOptions”
Signature
type WorkbenchHostOptions = Readonly<{
hostWindow: Window;
resolveLaunch: WorkbenchResolvedChild;
prepareChild: Promise<
Readonly<{
commands: readonly AppCommandDeclaration[];
mount: Promise<WorkbenchChildSurface>;
dispose: Promise<void>;
}>
>;
services: WorkbenchHostServices;
reportAgentSessionSelection: void;
platform: Readonly<{
controls: WorkbenchHostControls;
destinations: Promise<
readonly Readonly<{
id: string;
label: string;
}>[]
>;
open: void;
takeAppOpenRequest: TeamWorkbenchHostHandle["takeAppOpenRequest"];
}>;
log: void;
}>;

One workbench’s child mechanics over host-owned admission and services.


WorkbenchChildLaunchtype alias

Section titled “WorkbenchChildLaunch”
Signature
type WorkbenchChildLaunch = Readonly<{
windowId: string;
appId: string;
releaseId: string;
surfaceId: string;
href: string;
title?: string;
openRequest: AppOpenRequest | null;
}>;

A request to resolve and mount one child App, by its own identity.


WorkbenchCommandInvocationtype alias

Section titled “WorkbenchCommandInvocation”
Signature
type WorkbenchCommandInvocation = Readonly<{
arguments?: WhistleJsonValue;
origin: WhistleExecutionOrigin;
}>;

One invocation of a mounted child’s own Release-declared command.


WorkbenchChildEventstype alias

Section titled “WorkbenchChildEvents”
Signature
type WorkbenchChildEvents = Readonly<{
onComputerChoice?: () => Promise<void>;
onNavigation?: (input) => Promise<void>;
onAppOpen?: (input) => Promise<void>;
onAppRole?: (role) => Promise<AppRoleChoice>;
onSelectionChanged?: () => Promise<boolean>;
onCommands?: (commands) => Promise<void>;
onReservedChord?: (input) => Promise<void>;
onFocus?: (focused) => Promise<void>;
onNavigationState?: (state) => Promise<void>;
onStatusItems?: (items) => Promise<void>;
}>;

Events a mounted child raises toward its dashboard. A child’s permission requests never reach the dashboard: the host asks the person itself. The host validates a child’s commands against that child’s own Release declaration before forwarding them, so the dashboard can present them but never widen them.


WorkbenchChildHandletype alias

Section titled “WorkbenchChildHandle”
Signature
type WorkbenchChildHandle = object;

One mounted child App; every method proxies to its real host-owned mount.

Signature
setVisibility(visibility): Promise<void>;

Show or hide the mounted child without changing its identity.

Parameter Type
visibility "hidden" | "visible"

Promise<void>

Signature
reconfigure(launch): Promise<void>;

Update the launch descriptor of the existing mount.

Parameter Type
launch WorkbenchChildLaunch

Promise<void>

Signature
requestClose(): Promise<boolean>;

Ask whether the child permits a user-initiated close.

Promise<boolean>

Signature
requestBack(): Promise<boolean>;

Ask the child to go back one step in its own history; true when it did.

Promise<boolean>

Signature
activateStatus(action): Promise<boolean>;

Deliver the person’s use of a child’s status item; true when it acted.

Parameter Type
action AppStatusAction

Promise<boolean>

Signature
activateNavigation(activation): Promise<boolean>;

Deliver the person’s use of a child’s crumb or header command; true when it acted.

Parameter Type
activation AppNavigationActivation

Promise<boolean>

Signature
invokeCommand(commandId, input): Promise<WhistleJsonValue | undefined>;

Run one of the child’s currently presented commands.

Parameter Type
commandId string
input WorkbenchCommandInvocation

Promise<WhistleJsonValue | undefined>

Signature
dispose(): Promise<void>;

Release the child mount and its resources.

Promise<void>


WorkbenchPlatformDestinationtype alias

Section titled “WorkbenchPlatformDestination”
Signature
type WorkbenchPlatformDestination = Readonly<{
id: string;
label: string;
}>;

A platform destination the host offers the dashboard, such as opening a host settings page. The host owns the labels and the navigation; the dashboard only presents them and asks the host to follow one.


WorkbenchGillRequesttype alias

Section titled “WorkbenchGillRequest”
Signature
type WorkbenchGillRequest = typeof workbenchGillRequestSchema.Type;

Decoded Gill request for a surface in the host directory.


DesktopGillSelectiontype alias

Section titled “DesktopGillSelection”
Signature
type DesktopGillSelection = z.output<typeof desktopGillSelectionSchema>;

The identity of a Gill selected in a host-rendered settings view.


DesktopGillAdditiontype alias

Section titled “DesktopGillAddition”
Signature
type DesktopGillAddition = z.output<typeof desktopGillAdditionSchema>;

A decoded request to add a Gill placement.


WorkbenchDesktopSettingstype alias

Section titled “WorkbenchDesktopSettings”
Signature
type WorkbenchDesktopSettings = object;

A dashboard supplies its own arranger, not an endpoint for ordinary Apps.

Signature
readGill: (input) => Promise<z.output<typeof desktopGillSizesSchema>>;

Read the sizes currently assigned to this Gill in the dashboard layout.

Parameter Type
input DesktopGillSelection

Promise<z.output<typeof desktopGillSizesSchema>>

Signature
addGill: (input) => Promise<void>;

Add a Gill at the requested size to the dashboard layout.

Parameter Type
input DesktopGillAddition

Promise<void>

Signature
removeGill: (input) => Promise<void>;

Remove this Gill from the dashboard layout.

Parameter Type
input DesktopGillSelection

Promise<void>


WorkbenchDesktopRegistrationtype alias

Section titled “WorkbenchDesktopRegistration”
Signature
type WorkbenchDesktopRegistration = object;

A registration lease; close it when the dashboard unmounts.

Signature
close(): Promise<void>;

Release this host registration.

Promise<void>


WorkbenchGillWatchtype alias

Section titled “WorkbenchGillWatch”
Signature
type WorkbenchGillWatch = object;

A host-owned change subscription; close it when no longer visible.

Signature
close(): Promise<void>;

Release this host registration.

Promise<void>


TeamComputertype alias

Section titled “TeamComputer”
Signature
type TeamComputer = z.output<typeof teamComputerSchema>;

A decoded Team Computer inventory record.

workbenchGillRequestSchemaconstant

Section titled “workbenchGillRequestSchema”
Signature
const workbenchGillRequestSchema: Struct<{
viewId: String;
params: optional<$Record<String, String>>;
after: optional<String>;
options: optional<String>;
surfaceId: String;
}>;

A declared Gill request addressed to one host-selected App surface.


desktopGillSelectionSchemaconstant

Section titled “desktopGillSelectionSchema”
Signature
const desktopGillSelectionSchema: ZodObject<
{
surfaceId: ZodString;
gillId: ZodString;
},
$strict
>;

The member chooses a declared Gill and size in host-rendered Settings.


desktopGillSizesSchemaconstant

Section titled “desktopGillSizesSchema”
Signature
const desktopGillSizesSchema: ZodArray<
ZodEnum<{
S: "S";
M: "M";
L: "L";
}>
>;

The dashboard layout sizes currently assigned to one Gill.


desktopGillAdditionSchemaconstant

Section titled “desktopGillAdditionSchema”
Signature
const desktopGillAdditionSchema: ZodObject<
{
surfaceId: ZodString;
gillId: ZodString;
size: ZodEnum<{
S: "S";
M: "M";
L: "L";
}>;
},
$strict
>;

A selected Gill and the layout size requested for a new placement.


desktopSettingsHandlerSchemaconstant

Section titled “desktopSettingsHandlerSchema”
Signature
const desktopSettingsHandlerSchema: ZodPipe<
ZodUnknown,
ZodTransform<object & object, unknown>
>;

Shape of the arranger callbacks the shell supplies to its host.


appOpenRequestSchemaconstant

Section titled “appOpenRequestSchema”
Signature
const appOpenRequestSchema: Union<
readonly [
Struct<{
kind: Literal<"compose">;
requestId: String;
text: String;
}>,
Struct<{
kind: Literal<"navigate">;
requestId: String;
params: $Array<
Struct<{
key: String;
value: String;
}>
>;
}>,
]
>;

Runtime check for an App-open handoff arriving across an untrusted boundary.


teamComputerSchemaconstant

Section titled “teamComputerSchema”
Signature
const teamComputerSchema: ZodObject<
{
computerId: ZodString;
name: ZodString;
createdAt: ZodNumber;
updatedAt: ZodNumber;
},
$strict
>;

One Team Computer in a host’s inventory: the wire of computers().


teamComputerDirectorySchemaconstant

Section titled “teamComputerDirectorySchema”
Signature
const teamComputerDirectorySchema: ZodObject<
{
computers: ZodArray<
ZodObject<
{
computerId: ZodString;
name: ZodString;
createdAt: ZodNumber;
updatedAt: ZodNumber;
},
$strict
>
>;
nextOffset: ZodNullable<ZodNumber>;
},
$strict
>;

One page of a host’s Team Computer inventory.

createBrowserActionHandler()function

Section titled “createBrowserActionHandler()”
Signature
function createBrowserActionHandler(
options,
): (request) => Promise<AppBrowserActionOutcome>;

Browser effects stay in the trusted host, bound to one mounted App frame.

Parameter Type
options { frame: HTMLIFrameElement; hostWindow: Window; signal: AbortSignal; }
options.frame HTMLIFrameElement
options.hostWindow Window
options.signal AbortSignal

(request) => Promise<AppBrowserActionOutcome>

Re-exports AppCommandOptional


Re-exports AppCommandDeclaration


Re-exports commandPaletteReservedChordForPlatform


Re-exports commandPaletteReservedChordForUserAgent


Re-exports appDirectorySourceId


Re-exports AppSurfaceCommandMount


Re-exports PaneCommands


Re-exports PaneCommandMount


Re-exports AppSurfaceCommandHost


Re-exports createAppSurfaceCommandHost


Re-exports backBinding


Re-exports ShellActions


Re-exports shellCommands


Re-exports addressKey


Re-exports appAddressSchema


Re-exports appAuthorityEnforcementSchema


Re-exports appCatalogBrokerResultSchema


Re-exports appCatalogEntrySchema


Re-exports appCatalogResponseSchema


Re-exports appDirectoryEntrySchema


Re-exports appRoleSelectionSchema


Re-exports AppAddress


Re-exports AppAuthorityEnforcement


Re-exports AppCatalog


Re-exports AppDirectoryEntry


Re-exports AppDirectoryGill


Re-exports ShellChord


Re-exports KeyEventFacts


Re-exports parseChord


Re-exports chordMatches


Re-exports LeaderKey


Re-exports leaderKeys


Re-exports leaderKeyMatches


Re-exports ShellKeyHost


Re-exports installShellKeys


Re-exports WindowLaunch


Re-exports WindowStatus


Re-exports WindowHost


Re-exports WindowEvents


Re-exports WindowProjection


Re-exports WindowsProjection


Re-exports hasVisibleWindows


Re-exports WindowMount


Re-exports WindowManager


Re-exports WindowManagerOptions


Re-exports createWindowManager