Commit Graph

13 Commits

Author SHA1 Message Date
Peter Steinberger 0631252f4b refactor: reduce plugin SDK test import overhead (#109333)
* refactor(test): split plugin SDK test helpers

* fix(test): align plugin SDK test subpaths
2026-07-16 13:55:23 -07:00
lsr911 d2e9fa22bc fix(gradium): treat blank env API key as unconfigured in synthesis paths (#108800)
* fix(gradium): treat blank env API key as unconfigured in synthesis paths

The isGradiumProviderConfigured helper already uses trimToUndefined on
GRADIUM_API_KEY, but synthesize and synthesizeTelephony still used the
bare env var. This made whitespace-only credentials pass the
missing-key guard and send unusable bearer tokens.

- Wrap process.env.GRADIUM_API_KEY with trimToUndefined in synthesize
- Wrap process.env.GRADIUM_API_KEY with trimToUndefined in
  synthesizeTelephony
- Add test for whitespace-only env key rejection in synthesize

This completes the blank-credential guard for the Gradium provider,
matching the pattern from OpenAI (#108212), Xiaomi (#108558),
Deepgram (#108565), and Inworld (#108783).

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(gradium): centralize speech API key resolution

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 06:29:47 -07:00
moguangyu5-design cf8cfa8322 fix(gradium): keep isConfigured from throwing on invalid baseUrl (#108551)
* fix(gradium): keep isConfigured from throwing on invalid baseUrl

* refactor(gradium): narrow configuration validation

Co-authored-by: moguangyu5-design <moguangyu5-design@users.noreply.github.com>

---------

Co-authored-by: moguangyu5-design <moguangyu5-design@users.noreply.github.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 22:38:52 -07:00
Peter Steinberger 18eb472f82 fix(gradium): restrict TTS credential egress (#105169)
* fix(gradium): restrict TTS base URL before sending API keys

* fix(gradium): pin credential egress hostname

* docs(changelog): note Gradium credential guard

* docs(changelog): note Gradium credential guard

---------

Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com>
2026-07-12 09:43:22 +01:00
Peter Steinberger 4fa5092cdc docs: document small extension sources 2026-06-04 21:02:07 -04:00
Vincent Koc 4438be7f05 fix(tts): bound generated speech downloads 2026-05-29 12:58:56 +02:00
Peter Steinberger b499d8f60c test: dedupe gradium speech fetch reads 2026-05-12 20:57:38 +01:00
Peter Steinberger 2ec1a27c9f test: guard extension channel mock calls 2026-05-12 11:19:53 +01:00
Shakker 69b6f1f676 test: tighten speech provider assertions 2026-05-11 09:04:29 +01:00
Peter Steinberger f972d9e7d1 test: require provider rollback fixtures 2026-05-08 18:47:01 +01:00
Vincent Koc 361737d1f1 fix(tts): honor telephony voice overrides 2026-05-03 22:52:18 -07:00
Peter Steinberger f34b41f198 refactor: split plugin sdk test helpers 2026-04-28 01:14:19 +01:00
Laurent Mazare d7e2939791 feat: add Gradium text-to-speech provider (#64958)
Adds the Gradium bundled plugin with TTS and speech-provider registration, docs, label routing, and focused/live coverage.

Also carries the current main lint cleanup needed for the rebased CI lane.

Co-authored-by: laurent <laurent.mazare@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 18:43:53 +01:00