policyengine

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package policyengine evaluates workspace and enterprise policy rules.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Action

type Action struct {
	Kind             ActionKind `json:"kind"`
	Reason           string     `json:"reason,omitempty"`
	RecoveryScenario string     `json:"recovery_scenario,omitempty"`
	Commands         []string   `json:"commands,omitempty"`
}

type ActionKind

type ActionKind string
const (
	ActionMergeToDev     ActionKind = "merge_to_dev"
	ActionMergeForward   ActionKind = "merge_forward"
	ActionRecoverOnce    ActionKind = "recover_once"
	ActionEscalate       ActionKind = "escalate"
	ActionCloseoutLane   ActionKind = "closeout_lane"
	ActionCleanupSession ActionKind = "cleanup_session"
	ActionBlock          ActionKind = "block"
)

type DecisionEvent

type DecisionEvent struct {
	LaneID      string       `json:"lane_id"`
	RuleID      string       `json:"rule_id"`
	Priority    int          `json:"priority"`
	Kind        DecisionKind `json:"kind"`
	Action      ActionKind   `json:"action"`
	Explanation string       `json:"explanation"`
	CreatedAt   time.Time    `json:"created_at"`
}

type DecisionKind

type DecisionKind string
const (
	DecisionMerge    DecisionKind = "merge"
	DecisionRecover  DecisionKind = "recover"
	DecisionEscalate DecisionKind = "escalate"
	DecisionCloseout DecisionKind = "closeout"
	DecisionCleanup  DecisionKind = "cleanup"
	DecisionBlock    DecisionKind = "block"
)

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

func DefaultEngine

func DefaultEngine() Engine

func NewEngine

func NewEngine(rules []Rule) Engine

func (Engine) Evaluate

func (e Engine) Evaluate(ctx LaneContext) Evaluation

type Evaluation

type Evaluation struct {
	Kind           string                `json:"kind"`
	Context        LaneContext           `json:"context"`
	Actions        []Action              `json:"actions"`
	Events         []DecisionEvent       `json:"events"`
	BlockedHandoff *PolicyBlockedHandoff `json:"blocked_handoff,omitempty"`
}

type FallbackStep

type FallbackStep struct {
	Kind             string   `json:"kind"`
	Description      string   `json:"description"`
	Commands         []string `json:"commands,omitempty"`
	RequiresApproval bool     `json:"requires_approval,omitempty"`
}

FallbackStep describes one safe next step after a policy block.

type LaneContext

type LaneContext struct {
	LaneID                 string `json:"lane_id"`
	GreenLevel             int    `json:"green_level"`
	GreenContractSatisfied bool   `json:"green_contract_satisfied"`
	BranchStatus           string `json:"branch_status,omitempty"`
	BranchBehind           int    `json:"branch_behind,omitempty"`
	VerificationBlocked    bool   `json:"verification_blocked"`
	Blocker                string `json:"blocker,omitempty"`
	ReviewStatus           string `json:"review_status,omitempty"`
	DiffScope              string `json:"diff_scope,omitempty"`
	RequestedAction        string `json:"requested_action,omitempty"`
	Repository             string `json:"repository,omitempty"`
	Branch                 string `json:"branch,omitempty"`
	Actor                  string `json:"actor,omitempty"`
	ActorScope             string `json:"actor_scope,omitempty"`
	PolicySource           string `json:"policy_source,omitempty"`
	PolicyBlockReason      string `json:"policy_block_reason,omitempty"`
	Completed              bool   `json:"completed"`
	RetryCount             int    `json:"retry_count"`
	RetryLimit             int    `json:"retry_limit"`
}

func NormalizeContext

func NormalizeContext(ctx LaneContext) LaneContext

type PolicyBlockedHandoff

type PolicyBlockedHandoff struct {
	Kind             string         `json:"kind"`
	Status           string         `json:"status"`
	Reason           string         `json:"reason"`
	PolicySource     string         `json:"policy_source"`
	ActorScope       string         `json:"actor_scope"`
	Actor            string         `json:"actor,omitempty"`
	RequestedAction  string         `json:"requested_action"`
	Repository       string         `json:"repository,omitempty"`
	Branch           string         `json:"branch,omitempty"`
	TechnicalFailure bool           `json:"technical_failure"`
	ApprovalRequired bool           `json:"approval_required"`
	Fallback         []FallbackStep `json:"fallback"`
}

PolicyBlockedHandoff exposes a structured refusal plus safe execution path.

type Rule

type Rule struct {
	ID       string
	Priority int
	When     func(LaneContext) bool
	Actions  func(LaneContext) []Action
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL