Purpose of this page: list every capability the application may ask
for, and the injection rule that keeps implementations swappable.
Layer 7
services/ — interfaces
A capability behind an interface. The index.ts of a capability holds the interface only — no implementation, no re-export of one.
Persistence capabilities
storage
Owns the transaction context. A write command opens one transaction here.
event · lease · execution · plan · blob
Accept the storage transaction through their signatures, so a transition and its event append share one transaction.
Planning capabilities
revision · graph · document
Plan revisions, graph queries, YAML document reading.
readiness
Dependency readiness for node scheduling.
git
Clone, fetch, worktree and ref operations against repositories.
Effect capabilities
ids · clock · crypto · secret
ULID minting, time, AES-GCM encryption, secret material. Injected so the domain stays pure.
model-catalog · config · home-lock
Model providers, configuration loading, exclusive access to a home.
Declared, not yet implemented
agent† · verify†
Interfaces only. Their only implementation is not-implemented.
Outbound edges
| From | To | Meaning |
|---|---|---|
| interfaces | implementations | implemented by, named only in main.ts |
Rules
- An interface may name another service interface in its signature — for example event and lease name the storage transaction context.
- An implementation may never import another capability's implementation.
- No
Iprefix on an interface, noImplsuffix on an implementation.