@shop-os/modelkit 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -9,6 +9,21 @@ header in the release PR.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [0.10.0] - Unreleased
13
+
14
+ ElevenLabs direct: text to speech and instant voice cloning on our own ElevenLabs account (ENG-3400).
15
+
16
+ ### Added
17
+ - Adapter `elevenlabs` for the ElevenLabs REST API (`https://api.elevenlabs.io`, base-url override `endpoints.elevenlabs`). Key `elevenlabs` from `ELEVENLABS_API_KEY`, with the `ENTERPRISE_` / `SLOOSH_` prefixes; a sloosh call without `SLOOSH_ELEVENLABS_API_KEY` fails with `auth`. fal's ElevenLabs rows run on fal's account and cannot see a cloned voice, so custom voices need the direct API.
18
+ - Speech row `elevenlabs-v4-direct` (`model_id` `eleven_v4`): the 18 previewed premade voices under their ElevenLabs voice ids (taken from the preview URLs; default Sarah `EXAVITQu4vr4xnSDxMaL`), the v4 languages, the ElevenLabs MP3 `output_format`s (default `mp3_44100_128`), 10,000 characters, `capabilities.customVoices`. Usage is one `images`-unit call, like the other speech rows.
19
+ - Voice-clone row `elevenlabs-ivc` (Instant Voice Clone, `POST /v1/voices/add`): 1-25 samples, `enhance` sent as `remove_background_noise`, transcripts ignored (IVC takes none), a `designSignature` refused with `unsupported_option` (a Fish design cannot be kept on ElevenLabs). Returns `voiceId` and `state` `trained`, or `created` while ElevenLabs holds the voice for verification. Usage unit `requests`. `deleteVoice` on the same row (`DELETE /v1/voices/{id}`).
20
+
21
+ ### Notes
22
+ - Both rows ship with `exposure: []`: callable by id, listed nowhere, unpriced. fal's ElevenLabs rows keep their exposure.
23
+ - `createVoice` retries only a 429: after a 5xx ElevenLabs may already hold the voice. A full voice library (`voice_limit_reached`) is `provider_rejected` with ElevenLabs' message; a 401 `quota_exceeded` is `provider_billing`, not `auth`.
24
+ - `deleteVoice` follows Fish: a first-attempt "not found" (404, or a 400 `voice_not_found` / `voice_does_not_exist`) is `provider_rejected`, since a voice of another account looks unknown too; after a failed attempt of the same call it counts as deleted.
25
+ - A kit before 0.10.0 refuses the `elevenlabs` adapter id, so these rows stay invisible to consumers that have not upgraded.
26
+
12
27
  ## [0.9.0] - Unreleased
13
28
 
14
29
  Fish Audio: text to speech, voice cloning and voice design (ENG-3400).
package/README.md CHANGED
@@ -52,6 +52,7 @@ const transcript = await kit.transcribe({ model: "elevenlabs-scribe-v2", source:
52
52
  const { voiceId } = await kit.createVoice({ model: "fish-voice-clone", title, samples: [{ audio: { url } }] }, { tier });
53
53
  const mine = await kit.generateSpeech({ model: "fish-s2.1-pro", text, customVoice: voiceId }, { tier });
54
54
  await kit.deleteVoice({ model: "fish-voice-clone", voiceId }, { tier });
55
+ // ElevenLabs works the same way: clone on `elevenlabs-ivc`, speak on `elevenlabs-v4-direct`.
55
56
 
56
57
  const clip = await kit.prepareMediaPart(
57
58
  "gemini-2.5-flash",
@@ -350,7 +351,7 @@ the app's secrets, not a Cloudflare gateway token.
350
351
 
351
352
  ## Adapters
352
353
 
353
- `ai-sdk-text`, `google-image`, `openai-image`, `google-genai` (Veo, Omni with `delivery: "uri"`, Lyria 3, Files API media parts), `ark` (Seedream, Seedance), `fal`, `replicate` (images, video, Lyria 2, MMAudio), `prodia`, `higgsfield`, `xai-video`, `luma` (Uni images, Ray 3.2 video via the Agents API; `LUMA_API_KEY`, base-url override `endpoints.luma`), `fish` (Fish Audio speech, `createVoice` / `designVoice` / `deleteVoice`; `FISH_AUDIO_API_KEY`, base-url override `endpoints.fish`). See `src/adapters/`.
354
+ `ai-sdk-text`, `google-image`, `openai-image`, `google-genai` (Veo, Omni with `delivery: "uri"`, Lyria 3, Files API media parts), `ark` (Seedream, Seedance), `fal`, `replicate` (images, video, Lyria 2, MMAudio), `prodia`, `higgsfield`, `xai-video`, `luma` (Uni images, Ray 3.2 video via the Agents API; `LUMA_API_KEY`, base-url override `endpoints.luma`), `fish` (Fish Audio speech, `createVoice` / `designVoice` / `deleteVoice`; `FISH_AUDIO_API_KEY`, base-url override `endpoints.fish`), `elevenlabs` (direct ElevenLabs speech, `createVoice` / `deleteVoice`; `ELEVENLABS_API_KEY`, base-url override `endpoints.elevenlabs`). See `src/adapters/`.
354
355
 
355
356
  ## Not in the package
356
357