88 getHostedModels ,
99 getMaxTemperature ,
1010 getProviderIcon ,
11+ getReasoningEffortValuesForModel ,
12+ getVerbosityValuesForModel ,
1113 MODELS_WITH_REASONING_EFFORT ,
1214 MODELS_WITH_VERBOSITY ,
1315 providers ,
@@ -114,12 +116,47 @@ export const AgentBlock: BlockConfig<AgentResponse> = {
114116 type : 'dropdown' ,
115117 placeholder : 'Select reasoning effort...' ,
116118 options : [
117- { label : 'none' , id : 'none' } ,
118- { label : 'minimal' , id : 'minimal' } ,
119119 { label : 'low' , id : 'low' } ,
120120 { label : 'medium' , id : 'medium' } ,
121121 { label : 'high' , id : 'high' } ,
122122 ] ,
123+ dependsOn : [ 'model' ] ,
124+ fetchOptions : async ( blockId : string ) => {
125+ const { useSubBlockStore } = await import ( '@/stores/workflows/subblock/store' )
126+ const { useWorkflowRegistry } = await import ( '@/stores/workflows/registry/store' )
127+
128+ const activeWorkflowId = useWorkflowRegistry . getState ( ) . activeWorkflowId
129+ if ( ! activeWorkflowId ) {
130+ return [
131+ { label : 'low' , id : 'low' } ,
132+ { label : 'medium' , id : 'medium' } ,
133+ { label : 'high' , id : 'high' } ,
134+ ]
135+ }
136+
137+ const workflowValues = useSubBlockStore . getState ( ) . workflowValues [ activeWorkflowId ]
138+ const blockValues = workflowValues ?. [ blockId ]
139+ const modelValue = blockValues ?. model as string
140+
141+ if ( ! modelValue ) {
142+ return [
143+ { label : 'low' , id : 'low' } ,
144+ { label : 'medium' , id : 'medium' } ,
145+ { label : 'high' , id : 'high' } ,
146+ ]
147+ }
148+
149+ const validOptions = getReasoningEffortValuesForModel ( modelValue )
150+ if ( ! validOptions ) {
151+ return [
152+ { label : 'low' , id : 'low' } ,
153+ { label : 'medium' , id : 'medium' } ,
154+ { label : 'high' , id : 'high' } ,
155+ ]
156+ }
157+
158+ return validOptions . map ( ( opt ) => ( { label : opt , id : opt } ) )
159+ } ,
123160 value : ( ) => 'medium' ,
124161 condition : {
125162 field : 'model' ,
@@ -136,6 +173,43 @@ export const AgentBlock: BlockConfig<AgentResponse> = {
136173 { label : 'medium' , id : 'medium' } ,
137174 { label : 'high' , id : 'high' } ,
138175 ] ,
176+ dependsOn : [ 'model' ] ,
177+ fetchOptions : async ( blockId : string ) => {
178+ const { useSubBlockStore } = await import ( '@/stores/workflows/subblock/store' )
179+ const { useWorkflowRegistry } = await import ( '@/stores/workflows/registry/store' )
180+
181+ const activeWorkflowId = useWorkflowRegistry . getState ( ) . activeWorkflowId
182+ if ( ! activeWorkflowId ) {
183+ return [
184+ { label : 'low' , id : 'low' } ,
185+ { label : 'medium' , id : 'medium' } ,
186+ { label : 'high' , id : 'high' } ,
187+ ]
188+ }
189+
190+ const workflowValues = useSubBlockStore . getState ( ) . workflowValues [ activeWorkflowId ]
191+ const blockValues = workflowValues ?. [ blockId ]
192+ const modelValue = blockValues ?. model as string
193+
194+ if ( ! modelValue ) {
195+ return [
196+ { label : 'low' , id : 'low' } ,
197+ { label : 'medium' , id : 'medium' } ,
198+ { label : 'high' , id : 'high' } ,
199+ ]
200+ }
201+
202+ const validOptions = getVerbosityValuesForModel ( modelValue )
203+ if ( ! validOptions ) {
204+ return [
205+ { label : 'low' , id : 'low' } ,
206+ { label : 'medium' , id : 'medium' } ,
207+ { label : 'high' , id : 'high' } ,
208+ ]
209+ }
210+
211+ return validOptions . map ( ( opt ) => ( { label : opt , id : opt } ) )
212+ } ,
139213 value : ( ) => 'medium' ,
140214 condition : {
141215 field : 'model' ,
@@ -166,6 +240,28 @@ export const AgentBlock: BlockConfig<AgentResponse> = {
166240 value : providers [ 'azure-openai' ] . models ,
167241 } ,
168242 } ,
243+ {
244+ id : 'vertexProject' ,
245+ title : 'Vertex AI Project' ,
246+ type : 'short-input' ,
247+ placeholder : 'your-gcp-project-id' ,
248+ connectionDroppable : false ,
249+ condition : {
250+ field : 'model' ,
251+ value : providers . vertex . models ,
252+ } ,
253+ } ,
254+ {
255+ id : 'vertexLocation' ,
256+ title : 'Vertex AI Location' ,
257+ type : 'short-input' ,
258+ placeholder : 'us-central1' ,
259+ connectionDroppable : false ,
260+ condition : {
261+ field : 'model' ,
262+ value : providers . vertex . models ,
263+ } ,
264+ } ,
169265 {
170266 id : 'tools' ,
171267 title : 'Tools' ,
@@ -465,6 +561,8 @@ Example 3 (Array Input):
465561 apiKey : { type : 'string' , description : 'Provider API key' } ,
466562 azureEndpoint : { type : 'string' , description : 'Azure OpenAI endpoint URL' } ,
467563 azureApiVersion : { type : 'string' , description : 'Azure API version' } ,
564+ vertexProject : { type : 'string' , description : 'Google Cloud project ID for Vertex AI' } ,
565+ vertexLocation : { type : 'string' , description : 'Google Cloud location for Vertex AI' } ,
468566 responseFormat : {
469567 type : 'json' ,
470568 description : 'JSON response format schema' ,
0 commit comments