pub struct EvoKernel<S: KernelState> {
pub kernel: Arc<Kernel<S>>,
pub sandbox: Arc<dyn Sandbox>,
pub validator: Arc<dyn Validator>,
pub store: Arc<dyn EvolutionStore>,
pub selector: Arc<dyn Selector>,
pub governor: Arc<dyn Governor>,
pub economics: Arc<Mutex<EvuLedger>>,
pub remote_publishers: Arc<Mutex<BTreeMap<String, String>>>,
pub stake_policy: StakePolicy,
pub sandbox_policy: SandboxPolicy,
pub validation_plan: ValidationPlan,
}Fields§
§kernel: Arc<Kernel<S>>§sandbox: Arc<dyn Sandbox>§validator: Arc<dyn Validator>§store: Arc<dyn EvolutionStore>§selector: Arc<dyn Selector>§governor: Arc<dyn Governor>§economics: Arc<Mutex<EvuLedger>>§remote_publishers: Arc<Mutex<BTreeMap<String, String>>>§stake_policy: StakePolicy§sandbox_policy: SandboxPolicy§validation_plan: ValidationPlanImplementations§
Source§impl<S: KernelState> EvoKernel<S>
impl<S: KernelState> EvoKernel<S>
pub fn new( kernel: Arc<Kernel<S>>, sandbox: Arc<dyn Sandbox>, validator: Arc<dyn Validator>, store: Arc<dyn EvolutionStore>, ) -> Self
pub fn with_selector(self, selector: Arc<dyn Selector>) -> Self
pub fn with_sandbox_policy(self, policy: SandboxPolicy) -> Self
pub fn with_governor(self, governor: Arc<dyn Governor>) -> Self
pub fn with_economics(self, economics: Arc<Mutex<EvuLedger>>) -> Self
pub fn with_stake_policy(self, policy: StakePolicy) -> Self
pub fn with_validation_plan(self, plan: ValidationPlan) -> Self
pub fn select_candidates(&self, input: &SelectorInput) -> Vec<GeneCandidate>
pub fn bootstrap_if_empty( &self, run_id: &RunId, ) -> Result<BootstrapReport, EvoKernelError>
pub async fn capture_successful_mutation( &self, run_id: &RunId, mutation: PreparedMutation, ) -> Result<Capsule, EvoKernelError>
pub async fn capture_mutation_with_governor( &self, run_id: &RunId, mutation: PreparedMutation, ) -> Result<CaptureOutcome, EvoKernelError>
pub async fn capture_from_proposal( &self, run_id: &RunId, proposal: &AgentMutationProposal, diff_payload: String, base_revision: Option<String>, ) -> Result<CaptureOutcome, EvoKernelError>
pub fn feedback_for_agent(outcome: &CaptureOutcome) -> ExecutionFeedback
pub fn replay_feedback_for_agent( signals: &[String], decision: &ReplayDecision, ) -> ReplayFeedback
pub async fn run_supervised_devloop( &self, run_id: &RunId, request: &SupervisedDevloopRequest, diff_payload: String, base_revision: Option<String>, ) -> Result<SupervisedDevloopOutcome, EvoKernelError>
pub fn prepare_supervised_delivery( &self, request: &SupervisedDevloopRequest, outcome: &SupervisedDevloopOutcome, ) -> Result<SupervisedDeliveryContract, EvoKernelError>
pub fn evaluate_self_evolution_acceptance_gate( &self, input: &SelfEvolutionAcceptanceGateInput, ) -> Result<SelfEvolutionAcceptanceGateContract, EvoKernelError>
Sourcepub fn discover_autonomous_candidates(
&self,
input: &AutonomousIntakeInput,
) -> AutonomousIntakeOutput
pub fn discover_autonomous_candidates( &self, input: &AutonomousIntakeInput, ) -> AutonomousIntakeOutput
Autonomous candidate intake: classify raw diagnostic signals without a
caller‐supplied issue number, deduplicate across the batch, and return
an AutonomousIntakeOutput with accepted and denied candidates.
This is the entry point for EVO26-AUTO-01 — it does not generate
mutation proposals or trigger any task planning.
Sourcepub fn plan_autonomous_candidate(
&self,
candidate: &DiscoveredCandidate,
) -> AutonomousTaskPlan
pub fn plan_autonomous_candidate( &self, candidate: &DiscoveredCandidate, ) -> AutonomousTaskPlan
Bounded task planning for an autonomous candidate: assigns risk tier, feasibility score, validation budget, and expected evidence, then approves or denies the candidate for proposal generation.
This is the EVO26-AUTO-02 entry point. It does not generate a
mutation proposal — it only produces an auditable AutonomousTaskPlan.
Sourcepub fn propose_autonomous_mutation(
&self,
plan: &AutonomousTaskPlan,
) -> AutonomousMutationProposal
pub fn propose_autonomous_mutation( &self, plan: &AutonomousTaskPlan, ) -> AutonomousMutationProposal
Autonomous mutation proposal generation from an approved AutonomousTaskPlan.
Generates a bounded, machine-readable AutonomousMutationProposal from an
approved plan. Unapproved plans, missing scope, or weak evidence sets produce
a denied fail-closed proposal.
This is the EVO26-AUTO-03 entry point. It does not execute the mutation.
Sourcepub fn evaluate_semantic_replay(
&self,
task_id: impl Into<String>,
task_class: &BoundedTaskClass,
) -> SemanticReplayDecision
pub fn evaluate_semantic_replay( &self, task_id: impl Into<String>, task_class: &BoundedTaskClass, ) -> SemanticReplayDecision
Semantic task-class generalization evaluation for replay selection.
Determines whether a task described by task_id and task_class can
participate in broad-family replay beyond exact signal matching.
Returns a SemanticReplayDecision with an audit-ready
EquivalenceExplanation when replay is approved.
This is the EVO26-AUTO-04 entry point. It does not execute replay.
Sourcepub fn evaluate_confidence_revalidation(
&self,
asset_id: impl Into<String>,
current_state: ConfidenceState,
failure_count: u32,
) -> ConfidenceRevalidationResult
pub fn evaluate_confidence_revalidation( &self, asset_id: impl Into<String>, current_state: ConfidenceState, failure_count: u32, ) -> ConfidenceRevalidationResult
Continuous confidence revalidation evaluation for a given asset.
Given the asset’s current_state and its recent failure_count,
produces a ConfidenceRevalidationResult determining whether the asset
remains replay-eligible. Assets with three or more failures are
revalidated as failed; otherwise they pass.
This is the EVO26-AUTO-05 confidence revalidation entry point.
Sourcepub fn evaluate_asset_demotion(
&self,
asset_id: impl Into<String>,
prior_state: ConfidenceState,
failure_count: u32,
reason_code: ConfidenceDemotionReasonCode,
) -> DemotionDecision
pub fn evaluate_asset_demotion( &self, asset_id: impl Into<String>, prior_state: ConfidenceState, failure_count: u32, reason_code: ConfidenceDemotionReasonCode, ) -> DemotionDecision
Asset demotion decision for an asset that has exceeded failure policy.
Promotes the decision from Demoted to Quarantined when
failure_count >= 5; Demoted otherwise.
This is the EVO26-AUTO-05 asset demotion entry point.
Sourcepub fn evaluate_autonomous_pr_lane(
&self,
task_id: impl Into<String>,
task_class: &BoundedTaskClass,
risk_tier: AutonomousRiskTier,
evidence_bundle: Option<PrEvidenceBundle>,
) -> AutonomousPrLaneDecision
pub fn evaluate_autonomous_pr_lane( &self, task_id: impl Into<String>, task_class: &BoundedTaskClass, risk_tier: AutonomousRiskTier, evidence_bundle: Option<PrEvidenceBundle>, ) -> AutonomousPrLaneDecision
Evaluate whether a task is eligible for the bounded autonomous PR lane.
This is the EVO26-AUTO-06 autonomous PR lane entry point.
Low-risk classes (DocFix, StaticAnalysisFix, FormattingFix) with
validated evidence are approved. All other classes, or tasks that are
missing evidence, are denied fail-closed.
Sourcepub fn evaluate_autonomous_release_gate(
&self,
task_id: impl Into<String>,
task_class: &BoundedTaskClass,
risk_tier: AutonomousRiskTier,
kill_switch_state: KillSwitchState,
evidence_complete: bool,
) -> AutonomousReleaseGateDecision
pub fn evaluate_autonomous_release_gate( &self, task_id: impl Into<String>, task_class: &BoundedTaskClass, risk_tier: AutonomousRiskTier, kill_switch_state: KillSwitchState, evidence_complete: bool, ) -> AutonomousReleaseGateDecision
Evaluate whether a task is eligible for the fail-closed autonomous merge and release gate.
This is the EVO26-AUTO-07 autonomous release gate entry point.
Only low-risk bounded classes (DocsSingleFile, LintFix) with a
complete evidence chain, an inactive kill switch, and a Low risk tier
are approved. All other configurations are denied fail-closed.