Arcane OS Docs Development only

Reference

Arcane.requirements.ensure()

Ensures the selected requirements are installed/configured. The guarded Provisioner-open Ollama reconciliation always uses deny; only the separately confirmed close-and-retry action uses allow, and the native handoff still re-proves exact process and port identity before any interruption.

  • Reference

This focused page is derived from the mechanically checked full member inventory.

Syntax

Arcane.requirements.ensure(requirementIds, options?)

Parameters

Array of requirement IDs; omitted, null, or empty selects required requirements only; options.userProcessInterruption is exactly deny or allow and defaults to deny

Return value

Promise<{requirements, operation, credentials}>

Description

Ensures the selected requirements are installed/configured. The guarded Provisioner-open Ollama reconciliation always uses deny; only the separately confirmed close-and-retry action uses allow, and the native handoff still re-proves exact process and port identity before any interruption.

Overview

Arcane.requirements.ensure(requirementIds, options?) checks and, only where an approved installer is available, attempts to prepare selected requirements. It requires provisioning.manage, the Provisioner application type, an elevated Core worker, and the exclusive machine-mutation boundary.

Omitted, null, or empty requirementIds selects the required requirements (renderer and session-control), not every listed optional requirement. A nonempty array may contain each known id once and no more than the current three-item inventory. Always pass an array deliberately: the JavaScript wrapper normalizes a non-array first argument to the default selection.

options is either omitted or an exact plain object containing only userProcessInterruption, set to "deny" or "allow"; the default is "deny". Use "allow" only after a separate, informed confirmation. The host still re-verifies exact process and port identity and will not terminate an unknown process.

Result, side effects, and events

The exact result is {requirements, operation, credentials}. requirements contains fresh records only for the selected ids. credentials is an array and is normally empty. operation is the completed tracked-operation record with id, type, status, timestamps, progress, currentStep, progressDetails, credentials, error, and warningCount.

The operation can perform disk, network, process, or installation work and emits the standard operation lifecycle events. Simulation changes only simulation state and is not real readiness evidence.

Errors and recovery

Invalid ids or options use INVALID_REQUIREMENTS_ENSURE_REQUEST; invalid wrapper options throw TypeError before dispatch. Common host failures include ADMIN_REQUIRED, OPERATION_BUSY, REQUIREMENT_NOT_INSTALLABLE, REQUIREMENT_VERIFY_FAILED, and lease-release failures. Wait for a busy operation, keep interruption denied unless separately approved, and follow the specific requirement's recovery message.

Example

async function ensureBlockingRequirementsAfterConfirmation(confirmChange) {
    const requirements = await Arcane.requirements.list();
    const selected = requirements.filter(
        function selectBlockingRequirement(requirement) {
            return requirement.required && !requirement.ready;
        }
    ).map(function selectRequirementId(requirement) {
        return requirement.id;
    });

    if (selected.length === 0 || !confirmChange(selected)) {
        return null;
    }

    return Arcane.requirements.ensure(selected, {
        userProcessInterruption: 'deny'
    });
}

Reference group

Platform, installation, users, and system

Repository and reviewed source access