Documentation
¶
Index ¶
- func ApprovalFiles(call core.ToolCall) []string
- func ApprovalGrantKeysAllowAll(granted map[string]bool, keys []string) bool
- func ApprovalKey(call core.ToolCall) string
- func ApprovalKeys(call core.ToolCall) []string
- func ApprovalKeysFileScoped(keys []string) bool
- func ApprovalKeysForDecision(call core.ToolCall, decision PolicyDecision) []string
- func ApprovalKind(call core.ToolCall) string
- func ApprovalMetadata(call core.ToolCall, keys []string, metadata map[string]any) map[string]any
- func ApprovalRequestKeys(req ApprovalRequest) []string
- func ApprovalScope(call core.ToolCall) string
- func ApprovalSessionScope(call core.ToolCall) string
- func ApprovalSummary(call core.ToolCall) string
- func DecisionRequiresNonExternalApproval(decision PolicyDecision) bool
- func ExternalReadApprovalRootsForDecision(call core.ToolCall, decision PolicyDecision) []string
- func ExternalReadApprovalRootsFromKeys(keys []string) []string
- func NormalizeShellApprovalCommand(command string) string
- func ShellApprovalKeys(command string) []string
- func ShellRiskDecision(call core.ToolCall) shellrisk.Decision
- func ToolResultReadPath(dir string, call core.ToolCall) bool
- func WriteStdinApprovalKey(body map[string]any) string
- type ApprovalDecision
- type ApprovalFunc
- type ApprovalRequest
- type ApprovalRequirement
- type DefaultToolPolicy
- type ExecBoundaryRequest
- type PermissionAction
- type PermissionConfig
- type PermissionRule
- type PolicyDecision
- type ReadOnlyTurnPolicy
- type RulePolicy
- type ScopedAllowPolicy
- type SessionApprovalCache
- func (c *SessionApprovalCache) Grant(sessionID, key string)
- func (c *SessionApprovalCache) GrantAll(sessionID string, keys []string)
- func (c *SessionApprovalCache) Has(sessionID, key string) bool
- func (c *SessionApprovalCache) HasAll(sessionID string, keys []string) bool
- func (c *SessionApprovalCache) IsLoaded(sessionID string) bool
- func (c *SessionApprovalCache) Merge(sessionID string, keys map[string]bool)
- func (c *SessionApprovalCache) SetLoaded(sessionID string)
- type ShellExecutionRequest
- type ToolPolicy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApprovalFiles ¶ added in v0.1.15
func ApprovalGrantKeysAllowAll ¶ added in v0.1.30
func ApprovalKey ¶
func ApprovalKeys ¶ added in v0.1.15
func ApprovalKeysFileScoped ¶ added in v0.1.15
func ApprovalKeysForDecision ¶ added in v0.1.24
func ApprovalKeysForDecision(call core.ToolCall, decision PolicyDecision) []string
func ApprovalKind ¶ added in v0.1.15
func ApprovalMetadata ¶ added in v0.1.15
func ApprovalRequestKeys ¶ added in v0.1.15
func ApprovalRequestKeys(req ApprovalRequest) []string
func ApprovalScope ¶
func ApprovalSessionScope ¶ added in v0.1.15
func ApprovalSummary ¶
func DecisionRequiresNonExternalApproval ¶ added in v0.1.58
func DecisionRequiresNonExternalApproval(decision PolicyDecision) bool
func ExternalReadApprovalRootsForDecision ¶ added in v0.1.24
func ExternalReadApprovalRootsForDecision(call core.ToolCall, decision PolicyDecision) []string
func ExternalReadApprovalRootsFromKeys ¶ added in v0.1.24
func NormalizeShellApprovalCommand ¶ added in v0.1.15
func ShellApprovalKeys ¶ added in v0.1.17
func ShellRiskDecision ¶ added in v0.1.17
func ToolResultReadPath ¶ added in v0.1.58
toolResultReadPath extracts the file path from a read-only filesystem tool call and reports whether it falls inside the tool-results session directory, which should be auto-allowed without user approval.
func WriteStdinApprovalKey ¶ added in v0.1.44
Types ¶
type ApprovalDecision ¶ added in v0.1.8
type ApprovalDecision int
const ( ApprovalDeny ApprovalDecision = iota ApprovalAllow ApprovalAllowForSession ApprovalCancel )
func (ApprovalDecision) Approved ¶ added in v0.1.8
func (d ApprovalDecision) Approved() bool
func (ApprovalDecision) Canceled ¶ added in v0.1.14
func (d ApprovalDecision) Canceled() bool
func (ApprovalDecision) ForSession ¶ added in v0.1.8
func (d ApprovalDecision) ForSession() bool
type ApprovalFunc ¶
type ApprovalFunc func(req ApprovalRequest) ApprovalDecision
type ApprovalRequest ¶
type ApprovalRequirement ¶ added in v0.1.24
type DefaultToolPolicy ¶
type DefaultToolPolicy struct {
Default PermissionAction
Rules []PermissionRule
WorkspaceRoot string
WorktreeRoot string
}
func (DefaultToolPolicy) Decide ¶
func (p DefaultToolPolicy) Decide(spec core.ToolSpec, call core.ToolCall) PolicyDecision
type ExecBoundaryRequest ¶ added in v0.1.44
ExecBoundaryRequest is the structured command boundary used by an intercepting shell runtime when the shell is about to exec a concrete program. This is intentionally separate from write_stdin: terminal input is transport, while command policy belongs at the eventual program/argv boundary.
type PermissionAction ¶ added in v0.1.17
type PermissionAction string
const ( PermissionAllow PermissionAction = "allow" PermissionAsk PermissionAction = "ask" PermissionDeny PermissionAction = "deny" )
func ParsePermissionAction ¶ added in v0.1.17
func ParsePermissionAction(v string) (PermissionAction, error)
type PermissionConfig ¶ added in v0.1.18
type PermissionConfig struct {
Read map[string]string
Edit map[string]string
Shell map[string]string
Terminal map[string]string
ExternalDirectory map[string]string
MCP map[string]string
Memory map[string]string
Task map[string]string
WebSearch map[string]string
WebFetch map[string]string
MutatingTool map[string]string
}
func DefaultPermissionConfig ¶ added in v0.1.18
func DefaultPermissionConfig() PermissionConfig
type PermissionRule ¶ added in v0.1.17
type PermissionRule struct {
Permission string
Pattern string
Action PermissionAction
}
func DefaultRules ¶ added in v0.1.17
func DefaultRules() []PermissionRule
func RulesFromConfig ¶ added in v0.1.18
func RulesFromConfig(config PermissionConfig) ([]PermissionRule, error)
func RulesFromMap ¶ added in v0.1.17
func RulesFromMap(permission string, rules map[string]string) ([]PermissionRule, error)
type PolicyDecision ¶
type PolicyDecision struct {
Allow bool
RequiresApproval bool
Reason string
Code string
Phase string
MatchedRule string
Permission string
Pattern string
ApprovalRequirements []ApprovalRequirement
AllowedRequirements []ApprovalRequirement
}
type ReadOnlyTurnPolicy ¶ added in v0.1.17
type ReadOnlyTurnPolicy struct {
Base ToolPolicy
}
func (ReadOnlyTurnPolicy) Decide ¶ added in v0.1.17
func (p ReadOnlyTurnPolicy) Decide(spec core.ToolSpec, call core.ToolCall) PolicyDecision
type RulePolicy ¶ added in v0.1.17
type RulePolicy struct {
Default PermissionAction
Rules []PermissionRule
WorkspaceRoot string
WorktreeRoot string
}
func (RulePolicy) Decide ¶ added in v0.1.17
func (p RulePolicy) Decide(spec core.ToolSpec, call core.ToolCall) PolicyDecision
func (RulePolicy) DecideExecBoundary ¶ added in v0.1.44
func (p RulePolicy) DecideExecBoundary(req ExecBoundaryRequest) PolicyDecision
type ScopedAllowPolicy ¶ added in v0.1.17
type ScopedAllowPolicy struct {
Base ToolPolicy
ShellAllowPrefixes []string
}
func (ScopedAllowPolicy) Decide ¶ added in v0.1.17
func (p ScopedAllowPolicy) Decide(spec core.ToolSpec, call core.ToolCall) PolicyDecision
type SessionApprovalCache ¶
type SessionApprovalCache struct {
// contains filtered or unexported fields
}
func NewSessionApprovalCache ¶
func NewSessionApprovalCache() *SessionApprovalCache
func (*SessionApprovalCache) Grant ¶
func (c *SessionApprovalCache) Grant(sessionID, key string)
func (*SessionApprovalCache) GrantAll ¶ added in v0.1.15
func (c *SessionApprovalCache) GrantAll(sessionID string, keys []string)
func (*SessionApprovalCache) Has ¶
func (c *SessionApprovalCache) Has(sessionID, key string) bool
func (*SessionApprovalCache) HasAll ¶ added in v0.1.15
func (c *SessionApprovalCache) HasAll(sessionID string, keys []string) bool
func (*SessionApprovalCache) IsLoaded ¶
func (c *SessionApprovalCache) IsLoaded(sessionID string) bool
func (*SessionApprovalCache) Merge ¶
func (c *SessionApprovalCache) Merge(sessionID string, keys map[string]bool)
func (*SessionApprovalCache) SetLoaded ¶
func (c *SessionApprovalCache) SetLoaded(sessionID string)
type ShellExecutionRequest ¶ added in v0.1.44
type ToolPolicy ¶
type ToolPolicy interface {
Decide(spec core.ToolSpec, call core.ToolCall) PolicyDecision
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.