The manifest
IS the API.
Omega's entire API is one TOML/JSON/YAML file: ZGraph. Branes are nodes. Edges are typed events. The substrate compiles ZGraph into placement, capability, and resolver decisions. There is no imperative API — every interaction with Omega is a manifest diff.
TOML / JSON / YAML
CDDL · published
parse-time · CI-friendly
additive only · semver-tracked
The properties
that matter.
[brane.<name>], [graph], [resolver], [tenant], [policy]
substrate = "gaia" | "biome" | "habitat"
capability = "standard" | "frontier" (frontier rejects on habitat)
[brane.x.lifecycle] boot, sleep_idle, deadline
[brane.x.scale] strategy, target_q, min, max, predictive
[brane.x.resolver] + [brane.x.network] (egress allowlist)
[brane.x.storage] backend, retention, encryption
[brane.x.audit] emit, chain
[graph] edges = [{ from, to, on, queue, fanout }]
parse-time CDDL; ω plan adds substrate-aware rules
How you
describe it.
[tenant]
did = "did:omega:tenant:l1fe.ai"
quota = { vcpu = 64, mem_gib = 256, hourly_usd = 220 }
[policy]What you
can rely on.
You describe the desired state
ω apply makes the substrate match the manifest. No imperative API; no 'how' to debug, just 'what'.
Validated at parse time
Every section has a CDDL schema. Errors are caught at ω plan, not at runtime — your CI can reject bad manifests.
Manifests are review artifacts
A ZGraph diff in a PR tells you exactly what will change in the substrate. Reviewers see capability changes, replica changes, and resolver changes side by side.
Works locally and in production
The same manifest runs against your dev daemon, a private deployment, or our public substrate. The placement substrate is a one-line change — Gaia → Habitat — and that's it.