## 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 ```yaml 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 - [ ] A dictionary can be created from a local file. - [ ] Updating `activeVersion` content triggers a provider PATCH. - [ ] No-op pushes do not PATCH unchanged dictionaries. - [ ] Assistant dictionary references resolve correctly during push. - [ ] Pull creates or updates local dictionary files from provider state. - [ ] Build and tests pass.