Aetheris API Contract (v2.2)
May 26, 2026 ยท View on GitHub
1. Scope
This document defines the external API compatibility boundary for Aetheris 2.x.
- Stable APIs: backward-compatible across
2.xminors and patches - Experimental APIs: may change in minor releases
- Internal packages (
internal/) are out of compatibility scope
2. Versioning and Compatibility
- Major (
x.0.0): may include breaking changes - Minor (
0.x.0): backward-compatible feature additions - Patch (
0.0.x): bug fixes and non-breaking behavior fixes
Compatibility window:
- Stable APIs are guaranteed across all
2.x - Deprecated stable APIs are supported for at least 2 minor versions before removal
3. Stable API Surface (v2.2)
Job APIs
POST /api/agents/:id/message(legacy facade)GET /api/jobs/:idPOST /api/jobs/:id/stopPOST /api/jobs/:id/signalPOST /api/jobs/:id/messageGET /api/jobs/:id/eventsGET /api/jobs/:id/traceGET /api/jobs/:id/replayGET /api/jobs/:id/verifyPOST /api/jobs/:id/export(evidence ZIP; includes signed proof whensecurity.evidence_signing.enabled=true)
Run APIs
POST /api/runs(canonical submission)GET /api/runs/:idGET /api/runs/:id/eventsPOST /api/runs/:id/tool-callsPOST /api/runs/:id/pausePOST /api/runs/:id/resumePOST /api/runs/:id/human-decisions
Agent APIs
GET /api/agents/:id/statePOST /api/agents/:id/resumePOST /api/agents/:id/stopGET /api/agents/:id/jobsGET /api/agents/:id/jobs/:job_id
Agent definitions are loaded from configuration. Runtime creation/listing APIs are not part of the stable 2.x surface.
Document APIs
POST /api/documents/uploadPOST /api/documents/upload/asyncGET /api/documents/upload/status/:task_idGET /api/documents/GET /api/documents/:idDELETE /api/documents/:id
Knowledge APIs
GET /api/knowledge/collectionsPOST /api/knowledge/collectionsDELETE /api/knowledge/collections/:id
Observability APIs
GET /api/observability/summaryGET /api/observability/stuckGET /api/jobs/:id/trace/pageGET /api/jobs/:id/trace/cognitionGET /api/jobs/:id/nodes/:node_idGET /api/trace/overview/page
RBAC APIs
GET /api/rbac/rolePOST /api/rbac/rolePOST /api/rbac/check
Tool APIs
GET /api/toolsGET /api/tools/:name
System APIs
GET /api/system/statusGET /api/system/metricsGET /api/system/workers
4. Experimental Surface
Experimental APIs may change without major bump, but should be noted in release notes:
- New endpoints not listed in Section 3
- Optional response fields marked experimental in docs/release notes
- Adapter-specific runtime internals
- Endpoints exposed only when
api.forensics.experimental=true:POST /api/forensics/queryPOST /api/forensics/batch-exportGET /api/forensics/export-status/:task_idGET /api/forensics/consistency/:job_idPOST /api/forensics/ai/detect-anomaliesGET /api/jobs/:id/evidence-graphGET /api/jobs/:id/audit-logGET /api/compliance/templatesPOST /api/compliance/applyPOST /api/compliance/report
Forensics query read-model shape and filter compatibility are documented in docs/guides/forensics-read-model.md, but the endpoints remain experimental until the API compatibility contract is explicitly promoted.
Compliance report shape and evidence-binding rules are documented in docs/guides/compliance-reporting.md. Reports must include signed evidence verification metadata, template versioning, and explicit unsupported controls; the endpoints remain experimental and do not certify legal compliance.
The next compliance contract slice is defined in docs/artifacts/2026-05-26-compliance-surface-definition/api-cli-contract.md. It is CLI-first and evidence-first: HTTP compliance endpoints stay experimental until the offline evidence verification and report-generation path has matching tests and release evidence.
AI-forensics detector behavior and false-positive budget are documented in docs/guides/ai-forensics-eval.md. The detector is eval-gated, but /api/forensics/ai/detect-anomalies remains experimental and must not be treated as an autonomous enforcement API.
RoutingAdvisor capability-routing behavior is defined as an experimental internal contract in docs/guides/routing-advisor-contract.md. There is no stable public HTTP or CLI surface for this capability. Replay must use recorded route decision evidence and must not call external routing advisors.
5. Request/Response Change Policy
For stable endpoints:
- Allowed:
- Add optional request fields
- Add optional response fields
- Add new non-default query parameters
- Not allowed in
2.x:- Remove required fields
- Rename existing fields
- Change field types incompatibly
- Change endpoint semantics incompatibly
6. Deprecation Policy
When deprecating a stable API:
- Mark as deprecated in docs
- Add migration path in release notes
- Keep API available for >= 2 minor versions
- Remove only in next major, or after window with explicit notice
Example:
- Deprecated in
v2.2.0 - Earliest removal target:
v2.4.0(orv3.0.0)
Current deprecation note (runtime-first migration)
POST /api/agents/:id/messageis retained as a compatibility facade.- Canonical submission path for new integrations is
POST /api/runs+GET /api/jobs/:id. - During migration,
/api/agents/:id/messagemay include optional response objectruntime_submissionwith fields such as:legacy_facade(bool)canonical_api(string)job_id(string)run_id(string, optional)run_status(created/best_effort/disabled)
7. Release Gates for Contract Safety (P0)
A 2.x release should not be published unless:
- Contract docs are updated (
docs/reference/api-contract.md) - Compatibility checks pass for stable endpoints (smoke + regression tests)
- Deprecations (if any) include migration guidance
- Release notes include API delta summary
8. References
docs/release-checklist-2.0.mddocs/upgrade-1.x-to-2.0.mddocs/guides/runtime-guarantees.mddocs/guides/evidence-signing.mddocs/guides/forensics-read-model.mddocs/STATUS.md