Reference
Arcane.capabilities.list()
Returns the current Core-bound application descriptor, grants, and exact allowed RPC names. Android callers use Arcane.platform.status().capabilities; the direct method is not projected there.
This focused page is derived from the mechanically checked full member inventory.
Syntax
Arcane.capabilities.list()
Parameters
None
Return value
Promise<{app, grants, methods}>
Description
Returns the current Core-bound application descriptor, grants, and exact allowed RPC names. Android callers use Arcane.platform.status().capabilities; the direct method is not projected there.
Overview
Arcane.capabilities.list() returns the effective authority of the current
Core-bound application session. It takes no parameters, requires no capability,
has no side effect, and emits no event. Use it to disable unavailable controls;
it does not grant authority or make a later mutation safe without its own
preconditions.
The direct method is Core-only in the current projection. Android callers with
system.read obtain the same nested capability snapshot from
Arcane.platform.status().capabilities; a direct Android
capabilities.list request is unsupported.
Result
The exact result is { app, grants, methods }. app is the same eight-field
descriptor returned by Arcane.app.current(). grants is the sorted list of
capability strings bound to the app. methods is the sorted list of exact RPC
method names admitted after capability, app-type, and app-id policy checks.
RPC names can differ from public JavaScript member names: for example,
Arcane.applications.list() is admitted as "apps.list". Test the matching RPC
name and feature-detect the JavaScript member before enabling a control.
Errors and recovery
ARCANE_TRANSPORT_UNAVAILABLE means there is no host. An Android call rejects
with ANDROID_CAPABILITY_UNSUPPORTED; use the platform-status snapshot there.
An unexpected or missing method in a Core result indicates a policy/package
mismatch—refresh the app after repair rather than treating a grant string alone
as permission.
Example
const access = await Arcane.capabilities.list();
const canLaunch = Boolean(
Arcane.applications?.launch
&& access.grants.includes('applications.launch')
&& access.methods.includes('apps.launch')
);
console.log(access.app.id, canLaunch);