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.
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'
});
}