diff --git a/skyvern/forge/sdk/workflow/context_manager.py b/skyvern/forge/sdk/workflow/context_manager.py index 1885675d..7b0eabab 100644 --- a/skyvern/forge/sdk/workflow/context_manager.py +++ b/skyvern/forge/sdk/workflow/context_manager.py @@ -510,3 +510,19 @@ class WorkflowContextManager: await self.workflow_run_contexts[workflow_run_id].register_block_parameters( self.aws_client, parameters, organization ) + + def add_context_parameter(self, workflow_run_id: str, context_parameter: ContextParameter) -> None: + self._validate_workflow_run_context(workflow_run_id) + self.workflow_run_contexts[workflow_run_id].parameters[context_parameter.key] = context_parameter + + async def set_parameter_values_for_output_parameter_dependent_blocks( + self, + workflow_run_id: str, + output_parameter: OutputParameter, + value: dict[str, Any] | list | str | None, + ) -> None: + self._validate_workflow_run_context(workflow_run_id) + await self.workflow_run_contexts[workflow_run_id].set_parameter_values_for_output_parameter_dependent_blocks( + output_parameter, + value, + ) diff --git a/skyvern/forge/sdk/workflow/models/block.py b/skyvern/forge/sdk/workflow/models/block.py index af31798a..58edfd11 100644 --- a/skyvern/forge/sdk/workflow/models/block.py +++ b/skyvern/forge/sdk/workflow/models/block.py @@ -598,9 +598,6 @@ class ForLoopBlock(Block): return list(parameters) def get_loop_block_context_parameters(self, workflow_run_id: str, loop_data: Any) -> list[ContextParameter]: - if not isinstance(loop_data, dict) and not isinstance(loop_data, list): - raise ValueError("loop_data should be a dict or a list.") - context_parameters = [] for loop_block in self.loop_blocks: # todo: handle the case where the loop_block is a ForLoopBlock