Execute a workflow with enhanced performance monitoring. When `guardrail_enforcer` is `Some`, PII is encoded before each LLM call and decoded on LLM output; tool-call boundaries are handled by the executor layer. This is the non-streaming entry point. It delegates to [`execute_internal`] with no event channel, so zero overhead is added to the hot path.
(
&self,
workflow: Workflow,
guardrail_enforcer: Option<Arc<Enforcer>>,
)
| 323 | /// This is the non-streaming entry point. It delegates to [`execute_internal`] |
| 324 | /// with no event channel, so zero overhead is added to the hot path. |
| 325 | pub async fn execute( |
| 326 | &self, |
| 327 | workflow: Workflow, |
| 328 | guardrail_enforcer: Option<Arc<Enforcer>>, |
| 329 | ) -> GraphBitResult<WorkflowContext> { |
| 330 | let context = WorkflowContext::new(workflow.id.clone()); |
| 331 | self.execute_internal( |
| 332 | workflow, |
| 333 | guardrail_enforcer, |
| 334 | None, |
| 335 | crate::stream::StreamMode::Updates, |
| 336 | context, |
| 337 | ) |
| 338 | .await |
| 339 | } |
| 340 | |
| 341 | pub async fn execute_with_context( |
| 342 | &self, |
no test coverage detected