Skip to content
API reference

workbench-directory

Import
import * as api from "@fungi.computer/nacre/workbench-directory";
Kind Export Description
type alias WorkbenchDirectory One host’s current desktop rows and actual role selections.
constant workbenchComputerDirectorySchema The shell picker needs identities and labels, not inventory receipts.
constant workbenchDirectorySchema Desktop metadata shared by hosts; hosted administration stays in Settings.

WorkbenchDirectorytype alias

Section titled “WorkbenchDirectory”
Signature
type WorkbenchDirectory = z.output<typeof workbenchDirectorySchema>;

One host’s current desktop rows and actual role selections.

workbenchComputerDirectorySchemaconstant

Section titled “workbenchComputerDirectorySchema”
Signature
const workbenchComputerDirectorySchema: ZodObject<
{
computers: ZodArray<
ZodObject<
{
computerId: ZodString;
name: ZodString;
},
$strip
>
>;
nextOffset: ZodNullable<ZodNumber>;
},
$strip
>;

The shell picker needs identities and labels, not inventory receipts.


workbenchDirectorySchemaconstant

Section titled “workbenchDirectorySchema”
Signature
const workbenchDirectorySchema: ZodPipe<ZodObject<{
apps: ZodArray<ZodObject<{
address: ZodLazy<ZodUnion<readonly [ZodObject<{
kind: ...;
appId: ...;
}, $strict>, ZodObject<{
kind: ...;
installationId: ...;
}, $strict>]>>;
installationId: ZodNullable<ZodString>;
surfaceId: ZodString;
appId: ZodString;
displayName: ZodOptional<ZodString>;
icon: ZodOptional<ZodNullable<ZodString>>;
releaseId: ZodNullable<ZodString>;
authorityVersion: ZodNumber;
enforcement: ZodNullable<ZodLazy<ZodObject<{
requestId: ZodString;
address: ZodLazy<...>;
authorityVersion: ZodNumber;
state: ZodEnum<...>;
outstanding: ZodNumber;
}, $strict>>>;
handlers: ZodArray<ZodLiteral<"file.open">>;
roles: ZodArray<ZodString>;
declaredCapabilities: ZodArray<ZodString>;
calls: ZodOptional<ZodPipe<ZodUnknown, ZodTransform<readonly object[], unknown>>>;
commands: ZodPipe<ZodArray<ZodUnknown>, ZodTransform<Readonly<{
id: ...;
title: ...;
category: ...;
description?: ...;
sigil?: ...;
projections?: ...;
}>[], unknown[]>>;
gills: ZodPipe<ZodArray<ZodUnknown>, ZodTransform<AppDirectoryGill[], unknown[]>>;
availability: ZodEnum<{
available: "available";
unavailable: "unavailable";
}>;
surface: ZodNullable<ZodObject<{
stableRoute: ZodString;
}, $strict>>;
surfacePath: ZodString;
computer: ZodOptional<ZodUnion<readonly [ZodObject<{
computerId: ...;
name: ...;
}, $strip>, ZodLiteral<"owner-fleet">]>>;
computerPermission: ZodOptional<ZodNullable<ZodDiscriminatedUnion<[ZodLazy<...>, ZodLazy<...>], "kind">>>;
}, $strip>>;
computer: ZodOptional<ZodObject<{
computerId: ZodString;
name: ZodString;
}, $strip>>;
computerContext: ZodOptional<ZodLiteral<"owner-fleet">>;
roles: ZodRecord<ZodString, ZodObject<{
surfaceId: ZodNullable<ZodString>;
chosen: ZodBoolean;
}, $strict>>;
needsUpdate: ZodOptional<ZodArray<ZodObject<{
installationId: ZodNullable<ZodString>;
appId: ZodNullable<ZodString>;
displayName: ZodString;
}, $strict>>>;
}, $strip>, ZodTransform<{
apps: object[];
computer?: {
computerId: string;
name: string;
};
computerContext?: "owner-fleet";
roles: Record<string, {
surfaceId: string | null;
chosen: boolean;
}>;
needsUpdate?: object[];
}, {
apps: object[];
computer?: {
computerId: string;
name: string;
};
computerContext?: "owner-fleet";
roles: Record<string, {
surfaceId: string | null;
chosen: boolean;
}>;
needsUpdate?: object[];
}>>;

Desktop metadata shared by hosts; hosted administration stays in Settings.