Skip to content

Commit 563cbf0

Browse files
fix(ai): infer provider options for media activities
1 parent 3ae96e6 commit 563cbf0

4 files changed

Lines changed: 22 additions & 20 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@tanstack/ai': patch
3+
---
4+
5+
Fix provider-specific model options inference for TTS, transcription, and summarize activities.

packages/ai/src/activities/generateSpeech/index.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@ export const kind = 'tts' as const
3535
/**
3636
* Extract provider options from a TTSAdapter via ~types.
3737
*/
38-
export type TTSProviderOptions<TAdapter> =
39-
TAdapter extends TTSAdapter<any, any>
40-
? TAdapter['~types']['providerOptions']
41-
: object
38+
export type TTSProviderOptions<TAdapter> = TAdapter extends {
39+
'~types': { providerOptions: infer P extends object }
40+
}
41+
? P
42+
: object
4243

4344
// ===========================
4445
// Activity Options Type

packages/ai/src/activities/generateTranscription/index.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@ export const kind = 'transcription' as const
3535
/**
3636
* Extract provider options from a TranscriptionAdapter via ~types.
3737
*/
38-
export type TranscriptionProviderOptions<TAdapter> =
39-
TAdapter extends TranscriptionAdapter<any, any>
40-
? TAdapter['~types']['providerOptions']
41-
: object
38+
export type TranscriptionProviderOptions<TAdapter> = TAdapter extends {
39+
'~types': { providerOptions: infer P extends object }
40+
}
41+
? P
42+
: object
4243

4344
// ===========================
4445
// Activity Options Type

packages/ai/src/activities/summarize/index.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ export const kind = 'summarize' as const
2525
// ===========================
2626

2727
/** Extract provider options from a SummarizeAdapter via ~types */
28-
export type SummarizeProviderOptions<TAdapter> =
29-
TAdapter extends SummarizeAdapter<any, any>
30-
? TAdapter['~types']['providerOptions']
31-
: object
28+
export type SummarizeProviderOptions<TAdapter> = TAdapter extends {
29+
'~types': { providerOptions: infer P extends object }
30+
}
31+
? P
32+
: object
3233

3334
// ===========================
3435
// Activity Options Type
@@ -159,18 +160,12 @@ export function summarize<
159160

160161
if (stream) {
161162
return runStreamingSummarize(
162-
options as SummarizeActivityOptions<
163-
SummarizeAdapter<string, object>,
164-
true
165-
>,
163+
options as SummarizeActivityOptions<TAdapter, true>,
166164
) as SummarizeActivityResult<TStream>
167165
}
168166

169167
return runSummarize(
170-
options as SummarizeActivityOptions<
171-
SummarizeAdapter<string, object>,
172-
false
173-
>,
168+
options as SummarizeActivityOptions<TAdapter, false>,
174169
) as SummarizeActivityResult<TStream>
175170
}
176171

0 commit comments

Comments
 (0)