Getting started
Power has two inference entry points and one independent artifact surface. Pick the narrowest boundary your product needs.
1. Embed the runtime
Add only the listener-free inference surface:
Construct a runtime with an explicit device preference and resource limits:
Creating EmbeddedRuntime does not bind a socket, start a listener, download a
model, or invoke another process. The model crate supplies its reviewed graph
and retains semantic state; Power supplies the execution boundary.
Continue with Architecture to see the ownership contract.
2. Run the hosted service
Install the default service profile and bind it to loopback:
In another terminal, pull and open a small GGUF model:
Model manifests and content-addressed blobs live under ~/.a3s/power by
default. Set A3S_POWER_HOME to choose another store.
3. Send an OpenAI-compatible request
Chat and completion responses include an attestation_receipt and its SHA-256
digest. Streaming responses emit the receipt before [DONE].
4. Make policy explicit
The service reads A3S ACL from ~/.a3s/power/config.acl, or from the path
passed to a3s-power serve --config.
Invalid ACL, ranges, strategies, hashes, or unsupported explicit backends fail before inference. Production TEE policy adds verifier-owned measurements and model hashes; see Verification.
