Documentation
¶
Index ¶
- type Approver
- type AuditEntry
- type Capability
- type Checker
- type Choice
- type Decision
- type DecisionEngine
- type DecisionKind
- type DecisionSource
- type Engine
- func (e *Engine) Decide(ctx context.Context, req Request) (*Decision, error)
- func (e *Engine) FilesystemRoots() FilesystemRoots
- func (e *Engine) Mode() Mode
- func (e *Engine) PlanMode() bool
- func (e *Engine) SetApprover(fn Approver)
- func (e *Engine) SetFilesystemRoots(roots FilesystemRoots)
- func (e *Engine) SetMode(mode Mode)
- func (e *Engine) SetPlanMode(active bool)
- func (e *Engine) SetSkillAllows(rawTools []string)
- type EngineConfig
- type FilesystemRoots
- type Metadata
- type Mode
- type Prompt
- type Request
- type Rule
- type RuleSet
- type Store
- type StoreEntry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuditEntry ¶
type AuditEntry struct {
Time time.Time `json:"time"`
Mode Mode `json:"mode"`
PlanMode bool `json:"plan_mode"`
Tool string `json:"tool"`
Capability Capability `json:"capability"`
Summary string `json:"summary"`
Decision string `json:"decision"`
Reason string `json:"reason,omitempty"`
Allow bool `json:"allow"`
}
type Capability ¶
type Capability string
const ( CapabilityRead Capability = "read" CapabilityWrite Capability = "write" CapabilityExec Capability = "exec" CapabilityHook Capability = "hook" CapabilityNetwork Capability = "network" CapabilitySubagent Capability = "subagent" CapabilityInternal Capability = "internal" CapabilityUnknown Capability = "unknown" )
type Decision ¶
type Decision struct {
Kind DecisionKind `json:"kind"`
Source DecisionSource `json:"source,omitempty"`
Reason string `json:"reason,omitempty"`
Capability Capability `json:"capability,omitempty"`
Summary string `json:"summary,omitempty"`
Key string `json:"key,omitempty"`
OutsideRoots bool `json:"outside_roots,omitempty"`
Prompted bool `json:"prompted,omitempty"`
Preview string `json:"preview,omitempty"`
UpdatedArgs json.RawMessage `json:"updated_args,omitempty"`
Suggestions []string `json:"suggestions,omitempty"`
}
type DecisionEngine ¶
type DecisionKind ¶
type DecisionKind string
const ( DecisionAllow DecisionKind = "allow" DecisionAllowOnce DecisionKind = "allow_once" DecisionAllowSession DecisionKind = "allow_session" DecisionAllowAlways DecisionKind = "allow_always" DecisionDeny DecisionKind = "deny" )
type DecisionSource ¶
type DecisionSource string
const ( DecisionSourceTool DecisionSource = "tool" DecisionSourceRule DecisionSource = "rule" DecisionSourceSkill DecisionSource = "skill" DecisionSourceMode DecisionSource = "mode" DecisionSourcePrompt DecisionSource = "prompt" DecisionSourceStore DecisionSource = "store" DecisionSourceRoots DecisionSource = "roots" )
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
func NewEngine ¶
func NewEngine(cfg EngineConfig) *Engine
func (*Engine) FilesystemRoots ¶
func (e *Engine) FilesystemRoots() FilesystemRoots
func (*Engine) SetApprover ¶
func (*Engine) SetFilesystemRoots ¶
func (e *Engine) SetFilesystemRoots(roots FilesystemRoots)
func (*Engine) SetPlanMode ¶
func (*Engine) SetSkillAllows ¶
type EngineConfig ¶
type EngineConfig struct {
Workspace string
Mode Mode
Rules *RuleSet
Roots FilesystemRoots
Store *Store
Approver Approver
OnAudit func(AuditEntry)
}
type FilesystemRoots ¶
type Metadata ¶
type Metadata struct {
Capability Capability `json:"capability,omitempty"`
SummaryHint string `json:"summary_hint,omitempty"`
Reason string `json:"reason,omitempty"`
Key string `json:"key,omitempty"`
KeyPrefix string `json:"key_prefix,omitempty"`
}
type Request ¶
type Request struct {
ToolID string `json:"tool_id,omitempty"`
ToolName string `json:"tool_name"`
ToolLabel string `json:"tool_label,omitempty"`
Summary string `json:"summary,omitempty"`
Reason string `json:"reason,omitempty"`
Args json.RawMessage `json:"args,omitempty"`
Preview json.RawMessage `json:"preview,omitempty"`
Metadata Metadata `json:"metadata,omitempty"`
}
type RuleSet ¶
func ParseRuleSet ¶
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
func (*Store) Add ¶
func (s *Store) Add(entry StoreEntry) error
type StoreEntry ¶
Click to show internal directories.
Click to hide internal directories.