Initializing
Three overloads exist:
Initialization is two-phase. Phase 1 is the synchronous initialize() call and is all local
inference needs. Phase 2 handles authentication, device registration, and telemetry, and runs
in the background; completeServicesInitialization() awaits it when you need to be sure it
finished.
Reading state
isInitialized, areServicesReady, and isActive are deprecated. Use isReady.
Capabilities
Reports the modalities, backends, and audio formats this build can actually run, plus an
unavailable list explaining anything missing. It is generated from live probes, not from
namespace presence, so a namespace existing does not imply the engine behind it is linked.
Models
isResumable(id:) reports whether an interrupted download can continue.
You rarely need load directly. Generation auto-loads what it needs and downloads when
options.model names a model that is absent.
LoadOptions
Registering your own model
For models outside the catalog there are three shapes: a single file by URL, an archive with
a declared structure, and a multi-file model described by file descriptors.
Storage
For what is on disk and for removing a model, use the models namespace:
RunAnywhere.getStorageInfo() and RunAnywhere.deleteModel(_:) still exist but are
deprecated in favour of those two.
Hugging Face token
Needed for gated or private repositories.
Logging
Events
A Combine surface exists alongside it:
eventBus also exposes per-category publishers: llmEvents, sttEvents, ttsEvents,
modelEvents, errorEvents, sdkEvents, ragEvents.
Resetting
Unloads models, closes sessions, and clears state.