From 563cbf00bf76f2ced535a6786cba24f04d78abcd Mon Sep 17 00:00:00 2001 From: Adem Ben Abdallah Date: Fri, 26 Jun 2026 10:43:40 +0100 Subject: [PATCH] fix(ai): infer provider options for media activities --- .changeset/soft-falcons-summarize.md | 5 +++++ .../ai/src/activities/generateSpeech/index.ts | 9 +++++---- .../activities/generateTranscription/index.ts | 9 +++++---- packages/ai/src/activities/summarize/index.ts | 19 +++++++------------ 4 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 .changeset/soft-falcons-summarize.md diff --git a/.changeset/soft-falcons-summarize.md b/.changeset/soft-falcons-summarize.md new file mode 100644 index 000000000..397933eea --- /dev/null +++ b/.changeset/soft-falcons-summarize.md @@ -0,0 +1,5 @@ +--- +'@tanstack/ai': patch +--- + +Fix provider-specific model options inference for TTS, transcription, and summarize activities. diff --git a/packages/ai/src/activities/generateSpeech/index.ts b/packages/ai/src/activities/generateSpeech/index.ts index 06baabaa9..2be6bb13c 100644 --- a/packages/ai/src/activities/generateSpeech/index.ts +++ b/packages/ai/src/activities/generateSpeech/index.ts @@ -35,10 +35,11 @@ export const kind = 'tts' as const /** * Extract provider options from a TTSAdapter via ~types. */ -export type TTSProviderOptions = - TAdapter extends TTSAdapter - ? TAdapter['~types']['providerOptions'] - : object +export type TTSProviderOptions = TAdapter extends { + '~types': { providerOptions: infer P extends object } +} + ? P + : object // =========================== // Activity Options Type diff --git a/packages/ai/src/activities/generateTranscription/index.ts b/packages/ai/src/activities/generateTranscription/index.ts index 2bd377b4f..c293b8587 100644 --- a/packages/ai/src/activities/generateTranscription/index.ts +++ b/packages/ai/src/activities/generateTranscription/index.ts @@ -35,10 +35,11 @@ export const kind = 'transcription' as const /** * Extract provider options from a TranscriptionAdapter via ~types. */ -export type TranscriptionProviderOptions = - TAdapter extends TranscriptionAdapter - ? TAdapter['~types']['providerOptions'] - : object +export type TranscriptionProviderOptions = TAdapter extends { + '~types': { providerOptions: infer P extends object } +} + ? P + : object // =========================== // Activity Options Type diff --git a/packages/ai/src/activities/summarize/index.ts b/packages/ai/src/activities/summarize/index.ts index 3c094ff3d..9610d8974 100644 --- a/packages/ai/src/activities/summarize/index.ts +++ b/packages/ai/src/activities/summarize/index.ts @@ -25,10 +25,11 @@ export const kind = 'summarize' as const // =========================== /** Extract provider options from a SummarizeAdapter via ~types */ -export type SummarizeProviderOptions = - TAdapter extends SummarizeAdapter - ? TAdapter['~types']['providerOptions'] - : object +export type SummarizeProviderOptions = TAdapter extends { + '~types': { providerOptions: infer P extends object } +} + ? P + : object // =========================== // Activity Options Type @@ -159,18 +160,12 @@ export function summarize< if (stream) { return runStreamingSummarize( - options as SummarizeActivityOptions< - SummarizeAdapter, - true - >, + options as SummarizeActivityOptions, ) as SummarizeActivityResult } return runSummarize( - options as SummarizeActivityOptions< - SummarizeAdapter, - false - >, + options as SummarizeActivityOptions, ) as SummarizeActivityResult }