@@ -331,26 +331,25 @@ func (m *DefaultManager) Execute(ctx context.Context, input ToolCallInput) (Tool
331331 return result , permissionErrorFromDecision (decision )
332332 }
333333
334- plan , err := m .sandbox .Check (ctx , action )
335- if err != nil {
336- if decision , decisionMatched := resolveSandboxOutsideWriteDecision (input , action , err , m .sessionDecisions ); decisionMatched {
337- if decision .Decision != security .DecisionAllow {
338- result := blockedToolResult (input , decision )
339- return result , permissionErrorFromDecision (decision )
334+ plan , err := m .sandbox .Check (ctx , action )
335+ if err != nil {
336+ if decision , decisionMatched := resolveSandboxOutsideWriteDecision (input , action , err , m .sessionDecisions ); decisionMatched {
337+ if decision .Decision != security .DecisionAllow {
338+ result := blockedToolResult (input , decision )
339+ return result , permissionErrorFromDecision (decision )
340+ }
341+ m .auditCapabilityDecision (action , string (security .DecisionAllow ), decision .Reason )
342+ return m .executor .Execute (ctx , input )
343+ } else {
344+ result := NewErrorResult (input .Name , "workspace sandbox rejected action" , sandboxErrorDetails (action , err ), actionMetadata (action ))
345+ result .ToolCallID = input .ID
346+ return result , err
340347 }
341- m . auditCapabilityDecision ( action , string ( security . DecisionAllow ), decision . Reason )
342- return m . executor . Execute ( ctx , input )
348+ } else if plan != nil {
349+ input . WorkspacePlan = plan
343350 }
344- result := NewErrorResult (input .Name , "workspace sandbox rejected action" , sandboxErrorDetails (action , err ), actionMetadata (action ))
345- result .ToolCallID = input .ID
346- return result , err
347- }
348351 m .auditCapabilityDecision (action , string (security .DecisionAllow ), "" )
349352
350- if plan != nil {
351- input .WorkspacePlan = plan
352- }
353-
354353 return m .executor .Execute (ctx , input )
355354}
356355
0 commit comments