MutkaMutka

SandboxHostApi

Reference — SandboxHostApi in the Mutka module API.

Interface: SandboxHostApi<TCommandId>

Defined in: sandbox/authoring/hostProxy.ts:43

Type Parameters

Type ParameterDefault type
TCommandId extends stringstring

Properties

board

board: {
  readFiles: Promise<ClipboardFiles | null>;
  writeFiles: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:63

readFiles()

readFiles(): Promise<ClipboardFiles | null>;

Read the pasteboard's pending file list, or null if it holds no files.

Returns

Promise<ClipboardFiles | null>

writeFiles()

writeFiles(paths, operation): Promise<void>;
Parameters
ParameterType
pathsstring[]
operation"copy" | "cut"
Returns

Promise<void>


config

config: {
  get: Promise<string | null>;
  set: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:167

Per-module persisted config (gated by the storage permission).

get()

get(key): Promise<string | null>;

Read a stored value, or null if the key was never set.

Parameters
ParameterType
keystring
Returns

Promise<string | null>

set()

set(key, value): Promise<void>;
Parameters
ParameterType
keystring
valuestring
Returns

Promise<void>


dialog

dialog: {
  choose: Promise<string | null>;
  confirm: Promise<boolean>;
  pickFile: Promise<string | null>;
  prompt: Promise<string | null>;
};

Defined in: sandbox/authoring/hostProxy.ts:92

choose()

choose(options): Promise<string | null>;

Show a single-choice list. Resolves with the chosen option's value, or null.

Parameters
ParameterType
options{ message: string; options: { detail?: string; icon?: string; label: string; value: string; }[]; }
options.messagestring
options.options{ detail?: string; icon?: string; label: string; value: string; }[]
Returns

Promise<string | null>

confirm()

confirm(options): Promise<boolean>;

Yes/no dialog. Resolves true (confirm) or false (cancel).

Parameters
ParameterType
options{ destructive?: boolean; detail?: string; message: string; }
options.destructive?boolean
options.detail?string
options.messagestring
Returns

Promise<boolean>

pickFile()

pickFile(options?): Promise<string | null>;

Open a Mutka file browser to pick one file. Resolves with its path, or null.

Parameters
ParameterType
options?{ fileNames?: string[]; initialDir?: string; title?: string; }
options.fileNames?string[]
options.initialDir?string
options.title?string
Returns

Promise<string | null>

prompt()

prompt(options): Promise<string | null>;

Text-input dialog. Resolves with the entered string, or null if cancelled.

Parameters
ParameterType
options{ defaultValue?: string; message: string; placeholder?: string; }
options.defaultValue?string
options.messagestring
options.placeholder?string
Returns

Promise<string | null>


events

events: {
  on: void;
};

Defined in: sandbox/authoring/hostProxy.ts:216

Subscribe to a whitelisted app event.

on()

on(event, handler): void;
Parameters
ParameterType
eventstring
handlerEventHandler
Returns

void


fs

fs: {
  cloudStatus: Promise<CloudStatus>;
  copyFiles: Promise<void>;
  createFile: Promise<void>;
  createFolder: Promise<void>;
  deleteItem: Promise<void>;
  moveFiles: Promise<void>;
  openItem: Promise<void>;
  readBytes: Promise<Uint8Array<ArrayBufferLike>>;
  readDir: Promise<FileItem[]>;
  renameItem: Promise<void>;
  trashItem: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:44

cloudStatus()

cloudStatus(path): Promise<CloudStatus>;

Whether a file is materialized locally or cloud-only.

Parameters
ParameterType
pathstring
Returns

Promise<CloudStatus>

copyFiles()

copyFiles(paths, dest): Promise<void>;
Parameters
ParameterType
pathsstring[]
deststring
Returns

Promise<void>

createFile()

createFile(path): Promise<void>;
Parameters
ParameterType
pathstring
Returns

Promise<void>

createFolder()

createFolder(path): Promise<void>;
Parameters
ParameterType
pathstring
Returns

Promise<void>

deleteItem()

deleteItem(path): Promise<void>;

Permanently delete an item (unrecoverable). Use trashItem unless the user asked to erase.

Parameters
ParameterType
pathstring
Returns

Promise<void>

moveFiles()

moveFiles(paths, dest): Promise<void>;
Parameters
ParameterType
pathsstring[]
deststring
Returns

Promise<void>

openItem()

openItem(path): Promise<void>;

Open an item with the system default handler.

Parameters
ParameterType
pathstring
Returns

Promise<void>

readBytes()

readBytes(path): Promise<Uint8Array<ArrayBufferLike>>;

Read a file's raw bytes.

Parameters
ParameterType
pathstring
Returns

Promise<Uint8Array<ArrayBufferLike>>

readDir()

readDir(path): Promise<FileItem[]>;

List a directory's entries (works for local paths and provider schemes).

Parameters
ParameterType
pathstring
Returns

Promise<FileItem[]>

renameItem()

renameItem(from, to): Promise<void>;
Parameters
ParameterType
fromstring
tostring
Returns

Promise<void>

trashItem()

trashItem(path): Promise<void>;

Move an item to the OS Trash (recoverable). Prefer this over deleteItem.

Parameters
ParameterType
pathstring
Returns

Promise<void>


home

home: {
  get: Promise<string>;
  set: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:103

The app's home directory store (distinct from the OS home, sys.homeDir).

get()

get(): Promise<string>;

Read the current app home directory.

Returns

Promise<string>

set()

set(path): Promise<void>;

Set the app home directory (any module may override it).

Parameters
ParameterType
pathstring
Returns

Promise<void>


modules

modules: {
  install: Promise<void>;
  probe: Promise<SandboxManifest>;
};

Defined in: sandbox/authoring/hostProxy.ts:159

Module tooling (gated by the discovery permission).

install()

install(source): Promise<void>;

Propose a module source for install - opens the permission-review dialog so the user approves before anything is written.

Parameters
ParameterType
sourcestring
Returns

Promise<void>

probe()

probe(source): Promise<SandboxManifest>;

Validate an ESM source in a throwaway worker and return its manifest.

Parameters
ParameterType
sourcestring
Returns

Promise<SandboxManifest>


nav: {
  goBack: Promise<void>;
  goForward: Promise<void>;
  goUp: Promise<void>;
  navigate: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:68

goBack()

goBack(): Promise<void>;
Returns

Promise<void>

goForward()

goForward(): Promise<void>;
Returns

Promise<void>

goUp()

goUp(): Promise<void>;
Returns

Promise<void>

navigate(path): Promise<void>;
Parameters
ParameterType
pathstring
Returns

Promise<void>


net

net: {
  request: Promise<NetResponse>;
};

Defined in: sandbox/authoring/hostProxy.ts:155

Host-proxied HTTP (avoids CORS, gated by network:public / network:local). One role: it sends a request and returns the response - it never touches the filesystem. To upload, read bytes via fs.readBytes (fs:read) and pass them as body; to save a response, write bytes via fs.* / sys.writeTempFile.

request()

request(options): Promise<NetResponse>;
Parameters
ParameterType
optionsNetRequestOptions
Returns

Promise<NetResponse>


secrets

secrets: {
  delete: Promise<void>;
  get: Promise<string | null>;
  set: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:173

Per-module credentials in the macOS Keychain (gated by secrets).

delete()

delete(key): Promise<void>;
Parameters
ParameterType
keystring
Returns

Promise<void>

get()

get(key): Promise<string | null>;

Read a stored credential, or null if absent.

Parameters
ParameterType
keystring
Returns

Promise<string | null>

set()

set(key, value): Promise<void>;
Parameters
ParameterType
keystring
valuestring
Returns

Promise<void>


selection

selection: {
  set: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:81

Drive view state: the current selection and the active sort.

set()

set(items): Promise<void>;
Parameters
ParameterType
itemsFileItem[]
Returns

Promise<void>


settings

settings: {
  toggle: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:110

Toggle the settings overlay open/closed.

toggle()

toggle(): Promise<void>;
Returns

Promise<void>


sidebar: {
  set: void;
};

Defined in: sandbox/authoring/hostProxy.ts:214

Replace this module's dynamic left-sidebar items (e.g. a bookmarks list).

set()

set(items): void;
Parameters
ParameterType
itemsSidebarItem[]
Returns

void


statusbar

statusbar: {
  remove: Promise<void>;
  set: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:123

Bottom status-bar items (e.g. a git widget). Gated by ui.

remove()

remove(itemId): Promise<void>;

Remove a status-bar item by id.

Parameters
ParameterType
itemIdstring
Returns

Promise<void>

set()

set(item): Promise<void>;

Add or replace one status-bar item (keyed by its id).

Parameters
ParameterType
itemStatusBarItem
Returns

Promise<void>


sys

sys: {
  appsForFile: Promise<AppInfo[]>;
  appVersion: Promise<string>;
  homeDir: Promise<string>;
  lastDir: Promise<string | null>;
  openWith: Promise<void>;
  previewUpdate: Promise<void>;
  quickLook: Promise<void>;
  startDrag: Promise<void>;
  writeTempFile: Promise<string>;
};

Defined in: sandbox/authoring/hostProxy.ts:129

appsForFile()

appsForFile(path): Promise<AppInfo[]>;

Apps that can open a file (Launch Services), default flagged + first.

Parameters
ParameterType
pathstring
Returns

Promise<AppInfo[]>

appVersion()

appVersion(): Promise<string>;

The app's own version string (e.g. "1.0.0"). Gated by storage.

Returns

Promise<string>

homeDir()

homeDir(): Promise<string>;

The OS home directory.

Returns

Promise<string>

lastDir()

lastDir(): Promise<string | null>;

The last visited local directory, or null on first run.

Returns

Promise<string | null>

openWith()

openWith(path, appPath): Promise<void>;

Open a file with a specific application bundle path.

Parameters
ParameterType
pathstring
appPathstring
Returns

Promise<void>

previewUpdate()

previewUpdate(path): Promise<void>;

Refresh an already-open Quick Look panel to preview path (else no-op).

Parameters
ParameterType
pathstring
Returns

Promise<void>

quickLook()

quickLook(path): Promise<void>;
Parameters
ParameterType
pathstring
Returns

Promise<void>

startDrag()

startDrag(paths, icon?): Promise<void>;

Start a native OS file drag of paths, previewed by icon (data-URI/path).

Parameters
ParameterType
pathsstring[]
icon?string
Returns

Promise<void>

writeTempFile()

writeTempFile(filename, data): Promise<string>;

Write bytes to a temp file and return its path (Uint8Array, or a base64 string for a Finder-dropped file). Gated by fs:temp.

Parameters
ParameterType
filenamestring
datastring | Uint8Array<ArrayBufferLike>
Returns

Promise<string>


tabs

tabs: {
  isActive: Promise<boolean>;
  openTab: Promise<void>;
  openTabInBackground: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:74

isActive()

isActive(): Promise<boolean>;

Whether this module's runtime is bound to the active tab.

Returns

Promise<boolean>

openTab()

openTab(path): Promise<void>;
Parameters
ParameterType
pathstring
Returns

Promise<void>

openTabInBackground()

openTabInBackground(path): Promise<void>;
Parameters
ParameterType
pathstring
Returns

Promise<void>


ui

ui: {
  clear: Promise<void>;
  modal: Promise<void>;
  render: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:114

Render declarative UI (a serializable UINode tree). Gated by ui.

clear()

clear(surfaceId): Promise<void>;

Clear a surface so it renders empty.

Parameters
ParameterType
surfaceIdstring
Returns

Promise<void>

modal(node): Promise<void>;

Open a modal with node, or pass null to close the current one.

Parameters
ParameterType
nodeUINode | null
Returns

Promise<void>

render()

render(surfaceId, node): Promise<void>;

Render/replace the UINode shown in a named surface (panel/settings/popover).

Parameters
ParameterType
surfaceIdstring
nodeUINode
Returns

Promise<void>


view

view: {
  setShowHidden: Promise<void>;
  setSort: Promise<void>;
  toggleHidden: Promise<void>;
  toggleSort: Promise<void>;
};

Defined in: sandbox/authoring/hostProxy.ts:84

setShowHidden()

setShowHidden(value): Promise<void>;

Explicitly set whether hidden/system files are shown.

Parameters
ParameterType
valueboolean
Returns

Promise<void>

setSort()

setSort(sort): Promise<void>;
Parameters
ParameterType
sortSortState
Returns

Promise<void>

toggleHidden()

toggleHidden(): Promise<void>;

Toggle whether hidden/system files (dotfiles) are shown.

Returns

Promise<void>

toggleSort()

toggleSort(key): Promise<void>;
Parameters
ParameterType
keySortKey
Returns

Promise<void>

Methods

activate()

activate(item): Promise<void>;

Defined in: sandbox/authoring/hostProxy.ts:182

Run an item through the open-resolution pipeline (keyboard double-click).

Parameters

ParameterType
itemFileItem

Returns

Promise<void>


log()

log(...args): void;

Defined in: sandbox/authoring/hostProxy.ts:218

Forwarded to the host console, prefixed with the module id.

Parameters

ParameterType
...argsunknown[]

Returns

void


onColumn()

onColumn(columnId, provider): void;

Defined in: sandbox/authoring/hostProxy.ts:190

Register the value provider for one of this module's custom columns.

Parameters

ParameterType
columnIdstring
providerColumnProvider

Returns

void


onCommand()

onCommand(commandId, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:186

Register the function that runs when one of this module's commands fires. When you use defineModule, commandId is constrained to the ids you declared in commands[], so a typo or stale id is a compile error.

Parameters

ParameterType
commandIdTCommandId
handlerCommandHandler

Returns

void


onCopyFiles()

onCopyFiles(scheme, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:206

Register the copy handler (sources may be local → upload, or same-scheme).

Parameters

ParameterType
schemestring
handlerTransferHandler

Returns

void


onCreateFile()

onCreateFile(scheme, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:200

Register the create-file handler for a file system provider scheme.

Parameters

ParameterType
schemestring
handlerWriteHandler

Returns

void


onCreateFolder()

onCreateFolder(scheme, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:198

Register the create-folder handler for a file system provider scheme.

Parameters

ParameterType
schemestring
handlerWriteHandler

Returns

void


onDeleteItem()

onDeleteItem(scheme, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:202

Register the delete handler for a file system provider scheme.

Parameters

ParameterType
schemestring
handlerWriteHandler

Returns

void


onDiscover()

onDiscover(sourceId, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:210

Register the discover handler for a declared discovery source.

Parameters

ParameterType
sourceIdstring
handlerDiscoverHandler

Returns

void


onFetchSource()

onFetchSource(sourceId, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:212

Register the fetch-source handler for a declared discovery source.

Parameters

ParameterType
sourceIdstring
handlerFetchSourceHandler

Returns

void


onList()

onList(scheme, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:194

Register the directory-listing handler for a file system provider scheme.

Parameters

ParameterType
schemestring
handlerListHandler

Returns

void


onMoveFiles()

onMoveFiles(scheme, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:208

Register the move handler (same-scheme sources).

Parameters

ParameterType
schemestring
handlerTransferHandler

Returns

void


onOpen()

onOpen(handlerId, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:188

Register the function that runs when an item matches one of this module's open handlers.

Parameters

ParameterType
handlerIdstring
handlerOpenHandler

Returns

void


onOpenFile()

onOpenFile(scheme, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:196

Register the file-open handler for a file system provider scheme.

Parameters

ParameterType
schemestring
handlerOpenFileHandler

Returns

void


onRenameItem()

onRenameItem(scheme, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:204

Register the rename/move handler for a file system provider scheme.

Parameters

ParameterType
schemestring
handlerRenameProviderHandler

Returns

void


onUIEvent()

onUIEvent(handlerId, handler): void;

Defined in: sandbox/authoring/hostProxy.ts:192

Register a handler fired when a button/list/form in this module's UI is used.

Parameters

ParameterType
handlerIdstring
handlerUIEventHandler

Returns

void


refresh()

refresh(): Promise<void>;

Defined in: sandbox/authoring/hostProxy.ts:180

Re-read the current directory after a mutation.

Returns

Promise<void>

On this page

Interface: SandboxHostApi<TCommandId>Type ParametersPropertiesboardreadFiles()ReturnswriteFiles()ParametersReturnsconfigget()ParametersReturnsset()ParametersReturnsdialogchoose()ParametersReturnsconfirm()ParametersReturnspickFile()ParametersReturnsprompt()ParametersReturnseventson()ParametersReturnsfscloudStatus()ParametersReturnscopyFiles()ParametersReturnscreateFile()ParametersReturnscreateFolder()ParametersReturnsdeleteItem()ParametersReturnsmoveFiles()ParametersReturnsopenItem()ParametersReturnsreadBytes()ParametersReturnsreadDir()ParametersReturnsrenameItem()ParametersReturnstrashItem()ParametersReturnshomeget()Returnsset()ParametersReturnsmodulesinstall()ParametersReturnsprobe()ParametersReturnsnavgoBack()ReturnsgoForward()ReturnsgoUp()Returnsnavigate()ParametersReturnsnetrequest()ParametersReturnssecretsdelete()ParametersReturnsget()ParametersReturnsset()ParametersReturnsselectionset()ParametersReturnssettingstoggle()Returnssidebarset()ParametersReturnsstatusbarremove()ParametersReturnsset()ParametersReturnssysappsForFile()ParametersReturnsappVersion()ReturnshomeDir()ReturnslastDir()ReturnsopenWith()ParametersReturnspreviewUpdate()ParametersReturnsquickLook()ParametersReturnsstartDrag()ParametersReturnswriteTempFile()ParametersReturnstabsisActive()ReturnsopenTab()ParametersReturnsopenTabInBackground()ParametersReturnsuiclear()ParametersReturnsmodal()ParametersReturnsrender()ParametersReturnsviewsetShowHidden()ParametersReturnssetSort()ParametersReturnstoggleHidden()ReturnstoggleSort()ParametersReturnsMethodsactivate()ParametersReturnslog()ParametersReturnsonColumn()ParametersReturnsonCommand()ParametersReturnsonCopyFiles()ParametersReturnsonCreateFile()ParametersReturnsonCreateFolder()ParametersReturnsonDeleteItem()ParametersReturnsonDiscover()ParametersReturnsonFetchSource()ParametersReturnsonList()ParametersReturnsonMoveFiles()ParametersReturnsonOpen()ParametersReturnsonOpenFile()ParametersReturnsonRenameItem()ParametersReturnsonUIEvent()ParametersReturnsrefresh()Returns