Pipeline at a glance
A Build carries an expiry, digest, and server attestation. Pass it unchanged
between lifecycle calls. Later stages cannot replace its action payload or
reorder the batch.
Build and simulate
UsePOST /v1/pipeline/{chain}/build when you want Aomi to resolve a
catalog operation, stage it, and simulate it in one request. Use separate
stage and simulate calls when your application already has explicit
chain actions.
A Build records its origin: the App, active skills, and catalog operations that
assembled it. This makes the result inspectable without treating rendered model
text as execution evidence.
A failed simulation stops the lifecycle before commit. Correct the operation or
action, produce a new Build, and simulate again.
Commit and action requests
Commit accepts only a simulated Build. It revalidates the Build, checks expiry and attestation, and returns the same digest with the resulting action requests.result; the SVM response has results. The
requests array contains typed execution or signing requests. An empty array
means the commit completed without a caller-resolved action. The Pipeline
status itself is only committed; submitted, signed, and rejected are action
outcomes.
When an Agent turn reaches the same boundary, it emits an action event.
Resolve that action through the versioned action-result route with its exact
revision and typed result.
Signing authority
The active wallet policy decides who may sign. The App and model do not receive private keys and do not choose a broader signing mode at commit time. A request can lead to:- a connected wallet reviewing and submitting;
- an authorized signer executing under an existing grant;
- a signature returned to an allowed venue continuation; or
- a refusal when policy, review, or chain validation fails.
Plugin routes
A Rust plugin can return aToolReturn that suggests the next host step.
Use route bindings for workflows in which a wallet signature or transaction
result must feed a later plugin tool.
Host namespaces
Plugins request only the host tool sets they use:
Use
namespaces = [] for an App that only calls an external API. Namespace
selection controls tool visibility; it does not authorize a signature.
The invariant
A commit is bound to the Build that passed simulation. A caller cannot replace the target, value, calldata, instruction bytes, or action order during commit. An action that fails simulation does not cross the signing boundary.Pipeline API
Drive the stateless lifecycle and inspect its schemas.
Permission model
Learn how signing authority is granted and refused.