mode

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2026 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GateApproval             = "approval"
	GatePrerequisiteArtifact = "prerequisite_artifact"
	GateSafety               = "safety"
)
View Source
const (
	DenyGateFailed       = "GATE_FAILED"
	DenyEdgeNotFound     = "EDGE_NOT_FOUND"
	DenyRBACDenied       = "RBAC_DENIED"
	DenyTemplateNotFound = "TEMPLATE_NOT_FOUND"
)

Variables

View Source
var AgentCatalog = map[string]AgentCapability{
	"explore":               {Name: "explore", Description: "Fast codebase search and file/symbol mapping", Category: "build", ToolAccess: "read-only", DefaultModel: "mini", RoutingRole: RoutingRoleSpecialist},
	"analyst":               {Name: "analyst", Description: "Requirements clarity, acceptance criteria, hidden constraints", Category: "build", ToolAccess: "analysis", DefaultModel: "powerful", RoutingRole: RoutingRoleLeader},
	"planner":               {Name: "planner", Description: "Task sequencing, execution plans, risk flags", Category: "build", ToolAccess: "analysis", DefaultModel: "powerful", RoutingRole: RoutingRoleLeader},
	"architect":             {Name: "architect", Description: "System design, boundaries, interfaces, long-horizon tradeoffs", Category: "build", ToolAccess: "read-only", DefaultModel: "powerful", RoutingRole: RoutingRoleLeader},
	"debugger":              {Name: "debugger", Description: "Root-cause analysis, regression isolation, failure diagnosis", Category: "build", ToolAccess: "analysis", DefaultModel: "powerful", RoutingRole: RoutingRoleExecutor},
	"executor":              {Name: "executor", Description: "Code implementation, refactoring, feature work", Category: "build", ToolAccess: "execution", DefaultModel: "standard", RoutingRole: RoutingRoleExecutor},
	"team-executor":         {Name: "team-executor", Description: "Supervised team execution for conservative delivery lanes", Category: "build", ToolAccess: "execution", DefaultModel: "powerful", RoutingRole: RoutingRoleExecutor},
	"style-reviewer":        {Name: "style-reviewer", Description: "Formatting, naming, idioms, lint conventions", Category: "review", ToolAccess: "read-only", DefaultModel: "mini", RoutingRole: RoutingRoleSpecialist},
	"quality-reviewer":      {Name: "quality-reviewer", Description: "Logic defects, maintainability, anti-patterns", Category: "review", ToolAccess: "read-only", DefaultModel: "standard", RoutingRole: RoutingRoleLeader},
	"api-reviewer":          {Name: "api-reviewer", Description: "API contracts, versioning, backward compatibility", Category: "review", ToolAccess: "read-only", DefaultModel: "standard", RoutingRole: RoutingRoleLeader},
	"security-reviewer":     {Name: "security-reviewer", Description: "Vulnerabilities, trust boundaries, authn/authz", Category: "review", ToolAccess: "read-only", DefaultModel: "powerful", RoutingRole: RoutingRoleLeader},
	"performance-reviewer":  {Name: "performance-reviewer", Description: "Hotspots, complexity, memory/latency optimization", Category: "review", ToolAccess: "read-only", DefaultModel: "standard", RoutingRole: RoutingRoleLeader},
	"code-reviewer":         {Name: "code-reviewer", Description: "Comprehensive review across all concerns", Category: "review", ToolAccess: "read-only", DefaultModel: "powerful", RoutingRole: RoutingRoleLeader},
	"dependency-expert":     {Name: "dependency-expert", Description: "External SDK/API/package evaluation", Category: "domain", ToolAccess: "analysis", DefaultModel: "standard", RoutingRole: RoutingRoleSpecialist},
	"test-engineer":         {Name: "test-engineer", Description: "Test strategy, coverage, flaky-test hardening", Category: "domain", ToolAccess: "execution", DefaultModel: "powerful", RoutingRole: RoutingRoleExecutor},
	"quality-strategist":    {Name: "quality-strategist", Description: "Quality strategy, release readiness, risk assessment", Category: "domain", ToolAccess: "analysis", DefaultModel: "standard", RoutingRole: RoutingRoleLeader},
	"build-fixer":           {Name: "build-fixer", Description: "Build/toolchain/type failures resolution", Category: "domain", ToolAccess: "execution", DefaultModel: "standard", RoutingRole: RoutingRoleExecutor},
	"designer":              {Name: "designer", Description: "UX/UI architecture, interaction design", Category: "domain", ToolAccess: "execution", DefaultModel: "standard", RoutingRole: RoutingRoleExecutor},
	"writer":                {Name: "writer", Description: "Documentation, migration notes, user guidance", Category: "domain", ToolAccess: "execution", DefaultModel: "standard", RoutingRole: RoutingRoleSpecialist},
	"qa-tester":             {Name: "qa-tester", Description: "Interactive CLI/service runtime validation", Category: "domain", ToolAccess: "execution", DefaultModel: "standard", RoutingRole: RoutingRoleExecutor},
	"git-master":            {Name: "git-master", Description: "Commit strategy, history hygiene, rebasing", Category: "domain", ToolAccess: "execution", DefaultModel: "standard", RoutingRole: RoutingRoleExecutor},
	"code-simplifier":       {Name: "code-simplifier", Description: "Simplifies recently modified code for clarity and consistency without changing behavior", Category: "domain", ToolAccess: "execution", DefaultModel: "powerful", RoutingRole: RoutingRoleExecutor},
	"researcher":            {Name: "researcher", Description: "External documentation and reference research", Category: "domain", ToolAccess: "analysis", DefaultModel: "standard", RoutingRole: RoutingRoleSpecialist},
	"product-manager":       {Name: "product-manager", Description: "Problem framing, personas/JTBD, PRDs", Category: "product", ToolAccess: "analysis", DefaultModel: "standard", RoutingRole: RoutingRoleLeader},
	"ux-researcher":         {Name: "ux-researcher", Description: "Heuristic audits, usability, accessibility", Category: "product", ToolAccess: "analysis", DefaultModel: "standard", RoutingRole: RoutingRoleSpecialist},
	"information-architect": {Name: "information-architect", Description: "Taxonomy, navigation, findability", Category: "product", ToolAccess: "analysis", DefaultModel: "standard", RoutingRole: RoutingRoleSpecialist},
	"product-analyst":       {Name: "product-analyst", Description: "Product metrics, funnel analysis, experiments", Category: "product", ToolAccess: "analysis", DefaultModel: "standard", RoutingRole: RoutingRoleSpecialist},
	"critic":                {Name: "critic", Description: "Plan/design critical challenge and review", Category: "coordination", ToolAccess: "read-only", DefaultModel: "powerful", RoutingRole: RoutingRoleLeader},
	"vision":                {Name: "vision", Description: "Image/screenshot/diagram analysis", Category: "coordination", ToolAccess: "read-only", DefaultModel: "powerful", RoutingRole: RoutingRoleSpecialist},
}

AgentCatalog contains built-in OMX agent role metadata.

Functions

func DefaultGitRunner

func DefaultGitRunner(workDir string, args ...string) ([]byte, error)

func FormatDenialReason

func FormatDenialReason(result *GateResult) string

func TemplateKey

func TemplateKey(name, version string) string

TemplateKey returns the registry key for a mode template.

Types

type AgentCapability

type AgentCapability struct {
	Name         string
	Description  string
	Category     string
	ToolAccess   string
	DefaultModel string
	RoutingRole  RoutingRole
}

AgentCapability describes a specialized agent role that can be required by mode lanes.

func ResolveCapabilities

func ResolveCapabilities(names []string) []AgentCapability

ResolveCapabilities maps names to catalog entries. Unknown names receive defaults.

type ChildStatus

type ChildStatus struct {
	Name  string
	Phase RunPhase
}

type Constraints

type Constraints struct {
	MaxTurns               int
	SubAgentMaxTurns       int
	MaxConcurrentSubAgents int
	MaxRetries             int
	MaxRuntimeMinutes      int
}

type EvaluateOpts

type EvaluateOpts struct {
	Run       *RunSnapshot
	ActorRole Role
	Source    string
}

type EvaluateResult

type EvaluateResult struct {
	Result   TransitionResult
	Reason   string
	DenyCode string
	Target   *TemplateSpec
}

func Evaluate

func Evaluate(current *TemplateSpec, target *TemplateSpec, opts ...EvaluateOpts) EvaluateResult

Evaluate checks whether switching from current to target is valid.

type EvidenceContext

type EvidenceContext struct {
	WorkDir    string
	PlanExists bool
}

EvidenceContext provides state for phase entry gate evaluation.

type GateContext

type GateContext struct {
	Run          *RunSnapshot
	TargetStepID string
	Actor        string
	Source       string
}

GateContext provides the evaluation context for gate checks.

type GateResult

type GateResult struct {
	Gate     string
	Passed   bool
	Reason   string
	DenyCode string
}

GateResult is the outcome of evaluating a single gate.

func EvaluateGates

func EvaluateGates(gates []string, gctx GateContext) *GateResult

func EvaluateTransitionConditions

func EvaluateTransitionConditions(conditions []string, gctx GateContext) *GateResult

type GitRunner

type GitRunner func(workDir string, args ...string) ([]byte, error)

GitRunner executes a git command in the given directory.

type ModelRouting

type ModelRouting struct {
	DefaultModel   string
	ReasoningLevel string
	TextVerbosity  string
	RoleOverrides  map[string]RoleModelRouting
}

type Phase

type Phase struct {
	ID               string
	Name             string
	Description      string
	ReadOnly         bool
	RequiresApproval bool
	PresentArtifact  string
	EntryGates       []PhaseGate
}

type PhaseGate

type PhaseGate struct {
	Require string
	Message string
}

type PhaseGateResult

type PhaseGateResult struct {
	Require string
	Passed  bool
	Message string
}

PhaseGateResult is the outcome of evaluating a single phase entry gate.

func EvaluatePhaseEntryGates

func EvaluatePhaseEntryGates(gates []PhaseGate, ctx EvidenceContext) *PhaseGateResult

func EvaluatePhaseEntryGatesWithGitRunner

func EvaluatePhaseEntryGatesWithGitRunner(gates []PhaseGate, ctx EvidenceContext, gitRunner GitRunner) *PhaseGateResult

type ResetTo

type ResetTo struct {
	Name             string
	Version          string
	Prompt           string
	RequiresApproval bool
	ClearHistory     bool
}

type Role

type Role string

Role is the actor role used for mode RBAC.

const (
	RoleSystem Role = "system"
	RoleAdmin  Role = "admin"
	RoleUser   Role = "user"
)

type RoleModelRouting

type RoleModelRouting struct {
	Model          string
	ReasoningLevel string
	TextVerbosity  string
}

type RoutingRole

type RoutingRole string

RoutingRole determines how an agent participates in team coordination.

const (
	RoutingRoleLeader     RoutingRole = "leader"
	RoutingRoleSpecialist RoutingRole = "specialist"
	RoutingRoleExecutor   RoutingRole = "executor"
)

type RunPhase

type RunPhase string
const (
	RunPhasePending         RunPhase = "Pending"
	RunPhaseAdmitted        RunPhase = "Admitted"
	RunPhaseRunning         RunPhase = "Running"
	RunPhaseWaitingApproval RunPhase = "WaitingApproval"
	RunPhaseSucceeded       RunPhase = "Succeeded"
	RunPhaseFailed          RunPhase = "Failed"
)

type RunSnapshot

type RunSnapshot struct {
	WorkflowMode        WorkflowMode
	Phase               RunPhase
	ModeSnapshot        *TemplateSpec
	CompletionRequested bool
	Children            []ChildStatus
}

RunSnapshot contains the SDK-native fields needed for mode gate evaluation.

type TemplateSpec

type TemplateSpec struct {
	Name             string
	Version          string
	DisplayName      string
	Description      string
	Category         string
	Autonomous       bool
	Instructions     string
	Phases           []Phase
	Transitions      []Transition
	Capabilities     []string
	ModelRouting     *ModelRouting
	RoleInstructions map[string]string
	Constraints      *Constraints
	ResetTo          *ResetTo
}

TemplateSpec is the SDK-native mode template shape.

type Transition

type Transition struct {
	From  string
	To    string
	Gates []string
	When  []string
}

type TransitionResult

type TransitionResult string

TransitionResult is the outcome of evaluating a mode transition.

const (
	ResultApplied    TransitionResult = "applied"
	ResultDenied     TransitionResult = "denied"
	ResultNoop       TransitionResult = "noop"
	ResultRolledBack TransitionResult = "rolled_back"
)

type WorkflowMode

type WorkflowMode string
const (
	WorkflowModeAuto WorkflowMode = "Auto"
	WorkflowModeChat WorkflowMode = "Chat"
)

Jump to

Keyboard shortcuts

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