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 9a96d8221..70a5053f6 100644 --- a/packages/ai/src/activities/generateSpeech/index.ts +++ b/packages/ai/src/activities/generateSpeech/index.ts @@ -43,10 +43,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 96d85f2e5..c658b2f6b 100644 --- a/packages/ai/src/activities/generateTranscription/index.ts +++ b/packages/ai/src/activities/generateTranscription/index.ts @@ -47,10 +47,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 f890844b0..c1d7e5262 100644 --- a/packages/ai/src/activities/summarize/index.ts +++ b/packages/ai/src/activities/summarize/index.ts @@ -41,10 +41,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 @@ -213,18 +214,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 }