Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultGitRunner(workDir string, args ...string) ([]byte, error)
- func FormatDenialReason(result *GateResult) string
- func TemplateKey(name, version string) string
- type AgentCapability
- type ChildStatus
- type Constraints
- type EvaluateOpts
- type EvaluateResult
- type EvidenceContext
- type GateContext
- type GateResult
- type GitRunner
- type ModelRouting
- type Phase
- type PhaseGate
- type PhaseGateResult
- type ResetTo
- type Role
- type RoleModelRouting
- type RoutingRole
- type RunPhase
- type RunSnapshot
- type TemplateSpec
- type Transition
- type TransitionResult
- type WorkflowMode
Constants ¶
const ( GateApproval = "approval" GatePrerequisiteArtifact = "prerequisite_artifact" GateSafety = "safety" )
const ( DenyGateFailed = "GATE_FAILED" DenyEdgeNotFound = "EDGE_NOT_FOUND" DenyRBACDenied = "RBAC_DENIED" DenyTemplateNotFound = "TEMPLATE_NOT_FOUND" )
Variables ¶
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 FormatDenialReason ¶
func FormatDenialReason(result *GateResult) string
func TemplateKey ¶
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 Constraints ¶
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 ¶
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 ¶
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 ModelRouting ¶
type ModelRouting struct {
DefaultModel string
ReasoningLevel string
TextVerbosity string
RoleOverrides map[string]RoleModelRouting
}
type PhaseGateResult ¶
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 RoleModelRouting ¶
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 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 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" )