diff --git a/docs/asset-engine/CATALOG-CONTRACT.md b/docs/asset-engine/CATALOG-CONTRACT.md index 2e35f69..ca31fb5 100644 --- a/docs/asset-engine/CATALOG-CONTRACT.md +++ b/docs/asset-engine/CATALOG-CONTRACT.md @@ -37,7 +37,16 @@ reproducibility_audit: [Audit] # one entry per service | `description` | string | no | one-paragraph summary | | `category` | enum: tts, asr, sfx, music, image | yes | groups in pickers | | `version` | int | yes | per-service schema version; bump on field changes | -| `status` | enum: ready, catalog-deferred, experimental | no | default: ready | +| `status` | enum: ready, catalog-deferred, experimental, down | no | default: ready | + +**Status semantics:** + +| value | meaning | picker behavior | +|---|---|---| +| `ready` | Deployed, exercised, current default | clickable, primary surface | +| `experimental` | Deployed, may break under unusual params or while a custom renderer is being built (e.g. kokoro-captioned pre-renderer) | clickable, surfaced with a "experimental" tag | +| `catalog-deferred` | By-design out of scope this catalog version (e.g. ComfyUI requires per-asset workflow templates the catalog can't express today) | greyed, non-clickable, "deferred" tooltip | +| `down` | *Temporarily* unreachable on the host fleet — deployment gap, scheduled maintenance, container reaped, etc. Distinct from `catalog-deferred` because the intent is to flip back to `ready` once redeployed; the catalog row still describes a real intended service. | greyed, non-clickable, "service down" tooltip | | `host` | string (host alias) | yes | which fleet host serves this | | `endpoint` | URL | yes | absolute URL of the inference endpoint | | `method` | string | yes | HTTP method (POST common) | @@ -97,6 +106,7 @@ Same change-management as field types. | Add a non-required field to an existing service | service `version:` | | Add an optional key to the `response:` schema (e.g. audio_field, timestamps_field) | nothing — additive, backward-compatible | | Add an optional key to a Field (e.g. section) or to Service (e.g. section_groups) | nothing — additive, backward-compatible | +| Extend an existing enum (StatusT, FieldTypeT, ResponseTypeT, CategoryT) with a non-conflicting new value, with the consumer updated in the same coordinated change | nothing — older consumers don't encounter the new value; updated consumers parse it correctly | | Change a field's type, range, or default | service `version:` | | Remove a service | service `version:` (sentinel: removed=true), then drop in next catalog_version bump | | Add a new entry to the field-type vocabulary | `catalog_version:` | diff --git a/docs/asset-engine/services.schema.json b/docs/asset-engine/services.schema.json index 3feb093..4570cb9 100644 --- a/docs/asset-engine/services.schema.json +++ b/docs/asset-engine/services.schema.json @@ -513,7 +513,8 @@ "enum": [ "ready", "catalog-deferred", - "experimental" + "experimental", + "down" ], "title": "Status", "type": "string" diff --git a/docs/asset-engine/services.yaml b/docs/asset-engine/services.yaml index 906cf6a..9fee5bd 100644 --- a/docs/asset-engine/services.yaml +++ b/docs/asset-engine/services.yaml @@ -199,6 +199,7 @@ services: Zero-shot voice cloning from ~5s reference. 9 paralinguistic tags. category: tts version: 1 + status: down host: irv-ml1 endpoint: http://10.100.79.3:8196/v1/audio/speech method: POST @@ -258,6 +259,7 @@ services: (timbre from one reference, emotion from another). 22050 Hz fixed output. category: tts version: 1 + status: down host: irv-ml1 endpoint: http://10.100.79.3:8192/v1/audio/speech method: POST @@ -333,6 +335,7 @@ services: instruction-driven emotion, voice cloning. category: tts version: 1 + status: down host: irv-ml1 endpoint: http://10.100.79.3:8191/v1/audio/speech method: POST @@ -389,6 +392,7 @@ services: English prosody not ElevenLabs-grade — use Qwen3-TTS for English. category: tts version: 1 + status: down host: irv-ml1 endpoint: http://10.100.79.3:8190/v1/audio/speech method: POST @@ -497,6 +501,7 @@ services: + Moshi dialogue framework. OpenAI-compat HTTP wrapper over Rust streaming core. category: tts version: 1 + status: down host: irv-ml1 endpoint: http://10.100.79.3:8198/v1/audio/speech method: POST @@ -629,6 +634,7 @@ services: 8 languages, 70ms model latency, 9.7× realtime. Served via vLLM-Omni. category: tts version: 1 + status: down host: irv-ml1 endpoint: http://10.100.79.3:8197/v1/audio/speech method: POST