Reference
Arcane.localAI.recover()
Requests one privileged, exclusive, start-existing-service-only recovery of selected Arcane-managed local services. Requires ai.inference and explicit application admission.
This focused page is derived from the mechanically checked full member inventory.
Syntax
Arcane.localAI.recover(request)
Parameters
request: LocalAIRecoveryRequest
Return value
Promise<LocalAIRecoveryResult>
Description
Requests one privileged, exclusive, start-existing-service-only recovery of selected Arcane-managed local services. Requires ai.inference and explicit application admission.
Overview
Arcane.localAI.recover(request) starts and verifies existing approved
Arcane-managed local services. It does not install, replace, stop, or silently
reconfigure a service. Use it only from the admitted recovery journey after
status identifies a recoverable service outage.
Parameters
request is exactly {services}. services is a nonempty, duplicate-free
subset of "ollama" and "speech"; the result uses canonical Ollama-then-
speech order.
Return value
It resolves to {ready: true, services, operation}. Each service record is
exactly {id, serviceName, endpoint, state: "running", ready: true, started}
and the completed operation is the privileged recovery receipt.
Availability
This is a privileged, exclusive Core method for explicitly admitted recovery
application identities with ai.inference. The managed recovery adapter is
currently available on Microsoft NT. Linux reports recovery as unsupported,
and Android owns its local services outside Arcane.
Errors and recovery
Correct LOCAL_AI_RECOVERY_INPUT_INVALID before retrying. Unsupported platform,
missing registration, service configuration, health, elevation, lease, or
output-contract errors require the resolution on the Arcane.Error; do not
substitute an installer or arbitrary service command from renderer code.
Streaming, cancellation, and events
The workflow emits standard operation lifecycle and progress events. It is not
streaming and exposes no signal. Core does not cooperatively cancel it, so a
renderer timeout or page close can leave recovery running; refresh
localAI.status() before any retry.
Example
document.querySelector('#confirm-local-ai-recovery')?.addEventListener(
'click',
async function handleConfirmedLocalAIRecovery() {
const result = await globalThis.Arcane.localAI.recover({
services: ['speech']
});
console.info(result.services[0].ready);
}
);