Contracts Registry — CEO ⇄ ACS ⇄ HCS
A single place to keep minimal, versioned contracts. Values are examples; keep JSON strictly valid.
CEO → ACS (v0)
- version: "v0"
- id: string (UUID)
- intent: string
- budgets: '{ tokens_max, time_ms }'
- risk_profile: '{ level: low|medium|high }'
- privacy_mode: allow|redact|block
- request_id: string
Example:
json
{
"version": "v0",
"id": "c9b1a0f8-6d8d-4c3b-9a7c-2b2e4d7f9123",
"intent": "triage_login_bug",
"budgets": { "tokens_max": 5000, "time_ms": 800 },
"risk_profile": { "level": "medium" },
"privacy_mode": "allow",
"request_id": "req-20250826-001"
}
CEO → HCS (future; not used in v0)
- id: string (UUID)
- pacing: progressive|burst|drip|guarded
- channel: sse|ws
- correlation:
{ request_id }
json
{
"id": "2a2d77f4-6c41-4e2f-9c7a-98b3aa1a0a0e",
"pacing": "progressive",
"channel": "sse",
"correlation": { "request_id": "req-20250826-001" }
}
ACS → HCS (future stream events; not used in v0)
Common envelope:
json
{
"seq": 1,
"type": "bootstrap|fragment|delta|done|error",
"request_id": "req-20250826-001",
"ts": "2025-08-26T10:00:00Z"
}
Fragment payload:
json
{
"seq": 2,
"type": "fragment",
"request_id": "req-20250826-001",
"ts": "2025-08-26T10:00:01Z",
"fragment": {
"id": "frag-001",
"text": "User reports login fails on mobile; 2FA loop",
"entities": ["login", "2FA", "mobile"],
"benefit": 0.62,
"cost_tokens": 85
}
}
Versioning and compatibility
- Use semver in this registry.
- Producers may add optional fields; consumers must ignore unknowns.
- Breaking changes require a new version block (v2) and links from specs.
Note (v0): Streaming is disabled; CEO→ACS contract above is the only active path for orchestration v0.
Correlation and observability
- Always include request_id.
- For logs, add agent_id, user_id when available.
- Avoid raw sensitive data in fragments.