@@ -14,52 +14,54 @@ import type { Message } from '@codebuff/common/types/messages/codebuff-message'
1414import type { OpenRouterProviderOptions } from '@codebuff/internal/openrouter-ai-sdk'
1515
1616export const getAgentStreamFromTemplate = ( params : {
17+ agentId ?: string
1718 apiKey : string
18- runId : string
1919 clientSessionId : string
2020 fingerprintId : string
21- userInputId : string
22- userId : string | undefined
23- onCostCalculated ?: ( credits : number ) => Promise < void >
24- agentId ?: string
2521 includeCacheControl ?: boolean
22+ liveUserInputRecord : UserInputRecord
23+ logger : Logger
24+ messages : Message [ ]
25+ runId : string
26+ sessionConnections : SessionRecord
27+ template : AgentTemplate
2628 textOverride : string | null
29+ userId : string | undefined
30+ userInputId : string
2731
28- template : AgentTemplate
29- logger : Logger
30- sendAction : SendActionFn
32+ onCostCalculated ?: ( credits : number ) => Promise < void >
3133 promptAiSdkStream : PromptAiSdkStreamFn
32- liveUserInputRecord : UserInputRecord
33- sessionConnections : SessionRecord
34+ sendAction : SendActionFn
3435 trackEvent : TrackEventFn
35- } ) : { getStream : ( messages : Message [ ] ) => ReturnType < PromptAiSdkStreamFn > } => {
36+ } ) : ReturnType < PromptAiSdkStreamFn > => {
3637 const {
38+ agentId,
3739 apiKey,
38- runId,
3940 clientSessionId,
4041 fingerprintId,
41- userInputId,
42- userId,
43- onCostCalculated,
44- agentId,
4542 includeCacheControl,
46- textOverride,
47- template,
43+ liveUserInputRecord,
4844 logger,
45+ messages,
46+ runId,
47+ sessionConnections,
48+ template,
49+ textOverride,
50+ userId,
51+ userInputId,
52+
4953 sendAction,
54+ onCostCalculated,
5055 promptAiSdkStream,
51- liveUserInputRecord,
52- sessionConnections,
5356 trackEvent,
5457 } = params
5558
5659 if ( textOverride !== null ) {
57- return {
58- getStream : async function * stream ( ) : ReturnType < PromptAiSdkStreamFn > {
59- yield { type : 'text' , text : textOverride ! , agentId }
60- return crypto . randomUUID ( )
61- } ,
60+ async function * stream ( ) : ReturnType < PromptAiSdkStreamFn > {
61+ yield { type : 'text' , text : textOverride ! , agentId }
62+ return crypto . randomUUID ( )
6263 }
64+ return stream ( )
6365 }
6466
6567 if ( ! template ) {
@@ -68,46 +70,42 @@ export const getAgentStreamFromTemplate = (params: {
6870
6971 const { model } = template
7072
71- const getStream = ( messages : Message [ ] ) : ReturnType < PromptAiSdkStreamFn > => {
72- const aiSdkStreamParams : ParamsOf < PromptAiSdkStreamFn > = {
73- apiKey,
74- runId,
75- messages,
76- model,
77- stopSequences : [ globalStopSequence ] ,
78- clientSessionId,
79- fingerprintId,
80- userInputId,
81- userId,
82- maxOutputTokens : 32_000 ,
83- onCostCalculated,
84- includeCacheControl,
85- agentId,
86- maxRetries : 3 ,
87- sendAction,
88- liveUserInputRecord,
89- sessionConnections,
90- logger,
91- trackEvent,
92- }
73+ const aiSdkStreamParams : ParamsOf < PromptAiSdkStreamFn > = {
74+ apiKey,
75+ runId,
76+ messages,
77+ model,
78+ stopSequences : [ globalStopSequence ] ,
79+ clientSessionId,
80+ fingerprintId,
81+ userInputId,
82+ userId,
83+ maxOutputTokens : 32_000 ,
84+ onCostCalculated,
85+ includeCacheControl,
86+ agentId,
87+ maxRetries : 3 ,
88+ sendAction,
89+ liveUserInputRecord,
90+ sessionConnections,
91+ logger,
92+ trackEvent,
93+ }
9394
94- if ( ! aiSdkStreamParams . providerOptions ) {
95- aiSdkStreamParams . providerOptions = { }
96- }
97- for ( const provider of [ 'openrouter' , 'codebuff' ] as const ) {
98- if ( ! aiSdkStreamParams . providerOptions [ provider ] ) {
99- aiSdkStreamParams . providerOptions [ provider ] = { }
100- }
101- ; (
102- aiSdkStreamParams . providerOptions [ provider ] as OpenRouterProviderOptions
103- ) . reasoning = template . reasoningOptions
95+ if ( ! aiSdkStreamParams . providerOptions ) {
96+ aiSdkStreamParams . providerOptions = { }
97+ }
98+ for ( const provider of [ 'openrouter' , 'codebuff' ] as const ) {
99+ if ( ! aiSdkStreamParams . providerOptions [ provider ] ) {
100+ aiSdkStreamParams . providerOptions [ provider ] = { }
104101 }
105-
106- // Pass agent's provider routing options to SDK
107- aiSdkStreamParams . agentProviderOptions = template . providerOptions
108-
109- return promptAiSdkStream ( aiSdkStreamParams )
102+ ; (
103+ aiSdkStreamParams . providerOptions [ provider ] as OpenRouterProviderOptions
104+ ) . reasoning = template . reasoningOptions
110105 }
111106
112- return { getStream }
107+ // Pass agent's provider routing options to SDK
108+ aiSdkStreamParams . agentProviderOptions = template . providerOptions
109+
110+ return promptAiSdkStream ( aiSdkStreamParams )
113111}
0 commit comments