Request
Add first-class GitOps support for Vapi pronunciation dictionaries.
Context
Assistants can currently reference pronunciation dictionary IDs in voice config, but the dictionaries themselves are managed outside GitOps. We want dictionary resources to live in resources/<org>/pronunciationDictionaries/ so they can be pulled, reviewed, updated, and pushed like assistants and tools.
Requirements
- Support both ElevenLabs and Cartesia pronunciation dictionaries.
- Dictionary files should support multiple local versions.
- Each dictionary should have an explicit
activeVersion.
npm run push should create dictionaries when missing.
npm run push should PATCH the provider dictionary when the active version changes.
- PATCH should only run when the active version payload changed.
- Assistant configs should be allowed to reference local dictionary IDs.
- During push, local assistant references must resolve to the provider/Vapi-compatible fields because the Vapi API contract cannot change.
- State should track both the Vapi wrapper UUID used for PATCH/delete endpoints and the provider dictionary/version IDs used in assistant voice fields.
npm run pull should materialize remote dictionaries into local files.
- Removing an assistant attachment must not delete the dictionary.
- Dictionary deletion should be controlled by deleting the dictionary resource file or using the cleanup flow only.
Proposed Local Shape
provider: 11labs
name: Custom Pronunciations
activeVersion: v2
versions:
v1:
rules:
- type: alias
stringToReplace: ASPN
alias: "'æspən"
v2:
rules:
- type: alias
stringToReplace: ASPN
alias: "'æspən"
caseSensitive: false
wordBoundaries: true
Acceptance Criteria
Request
Add first-class GitOps support for Vapi pronunciation dictionaries.
Context
Assistants can currently reference pronunciation dictionary IDs in voice config, but the dictionaries themselves are managed outside GitOps. We want dictionary resources to live in
resources/<org>/pronunciationDictionaries/so they can be pulled, reviewed, updated, and pushed like assistants and tools.Requirements
activeVersion.npm run pushshould create dictionaries when missing.npm run pushshould PATCH the provider dictionary when the active version changes.npm run pullshould materialize remote dictionaries into local files.Proposed Local Shape
Acceptance Criteria
activeVersioncontent triggers a provider PATCH.