@@ -331,21 +331,23 @@ 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- } else {
342- result := NewErrorResult (input .Name , "workspace sandbox rejected action" , sandboxErrorDetails (action , err ), actionMetadata (action ))
343- result .ToolCallID = input .ID
344- return result , err
348+ } else if plan != nil {
349+ input .WorkspacePlan = plan
345350 }
346- } else if plan != nil {
347- input .WorkspacePlan = plan
348- }
349351 m .auditCapabilityDecision (action , string (security .DecisionAllow ), "" )
350352
351353 return m .executor .Execute (ctx , input )
0 commit comments