返回 DeepSeek-Reasonix
permission_preset.go
根目录 / internal / sandbox / permission_preset.go
1 package sandbox
2
3 import (
4 "context"
5
6 "reasonix/internal/permissionpreset"
7 )
8
9 type permissionPresetContextKey struct{}
10
11 // WithPermissionPreset binds the host-authoritative execution preset to one
12 // tool call. It is runtime-only and never changes provider-visible schemas.
13 func WithPermissionPreset(ctx context.Context, value string) context.Context {
14 if ctx == nil {
15 ctx = context.Background()
16 }
17 return context.WithValue(ctx, permissionPresetContextKey{}, permissionpreset.Normalize(value))
18 }
19
20 func PermissionPresetFrom(ctx context.Context) permissionpreset.Preset {
21 if ctx == nil {
22 return permissionpreset.WorkspaceWrite
23 }
24 if preset, ok := ctx.Value(permissionPresetContextKey{}).(permissionpreset.Preset); ok {
25 return preset
26 }
27 return permissionpreset.WorkspaceWrite
28 }
29
29 lines GO