Specification
Modules talk to Oarbank’s core only through these versioned contracts. Each page here is normative; the JSON Schemas generated from the SDK’s models are authoritative for message shapes.
| Contract | What it covers |
|---|---|
| Manifest (schema 1) | Everything the core must know before running module code |
| Module protocol 1 | Coordinator ↔ module: JSON-RPC 2.0 over stdio |
| Runner protocol 1 | Agent ↔ job runner: CLI, files, exit codes, events |
| Service protocol 1 | Agent ↔ node services and probes |
| Envelopes | Spec and result documents |
| Bundles and lifecycle | The .mfb file, its digest, install, canary, promote, rollback |
| Module sandbox | What a module process may reach, its grants, and each platform’s backend |
| UI contract 1 | Console pages a module defines as data |
| Conformance kit | What a module must pass (oarbank-sdk conform) |
The rules every contract shares:
- Public surface: exactly what a module may depend on.
- Versioning and deprecation: how the contracts change.
- Platforms: platform tokens, portable paths and per-platform declarations.
Generated reference: Manifest fields and JSON Schemas.