projectId. A project API key already fixes the acting project.
Custom definitions are available only in their owning project. Predefined
definitions are shared; their model settings belong to the acting project.
Use and save model settings
POST /v1/personas/{personaId}/use accepts projectId and an optional complete
models object. Omit models to save the current core’s declared defaults.
Repeated Use returns the existing settings. To change them, send PATCH with
models:
models object must be complete. Unknown fields, unsupported
provider/model pairs, empty voice IDs, invalid types, and out-of-range speeds
receive 422. Custom nonempty voice IDs are accepted without a provider lookup.
Model settings contain no credentials.
A current response includes parameterContract for the core and a separate
settings object with id, models, createdAt, and updatedAt. settings
is null before first use. A read does not create an association. Test selection
creates it with defaults when needed. Settings changes create no core version.
Create and edit behavior
Creation requiresname, identityName, personality, and language.
description and a complete models selection are optional. Omitted models
use the release’s complete recommended selection. All three records commit
together.
For a core edit, first read the current versionId, then send it as
expectedVersionId with the changed behavior:
409 version_conflict; a behavior edit without a base receives 422. The server
locks the current definition so concurrent edits cannot overwrite a newer
core. An unchanged core creates no version. Name and description remain live
metadata and need no core base.
Predefined cores cannot be edited by customers. The /fork endpoint takes an
optional projectId body and returns a new project-owned definition at version
- It copies the current core and effective settings, without changing any test selection.