Skip to main content

Crate nexo_driver_loop

Crate nexo_driver_loop 

Source
Expand description

Phase 67.4 — driver agent loop. See README.md and docs/src/architecture/driver-subsystem.md for the architecture.

Re-exports§

pub use acceptance::AcceptanceEvaluator;
pub use acceptance::CustomVerifier;
pub use acceptance::CustomVerifierRegistry;
pub use acceptance::DefaultAcceptanceEvaluator;
pub use acceptance::GitClean;
pub use acceptance::NoPathsTouched;
pub use acceptance::NoopAcceptanceEvaluator;
pub use acceptance::ShellResult;
pub use acceptance::ShellRunner;
pub use config::AcceptanceConfig;
pub use config::BindingStoreConfig;
pub use config::BindingStoreKind;
pub use config::CompactPolicyConfig;
pub use config::DeciderConfig;
pub use config::DeciderMemoryConfig;
pub use config::DenyShortcutConfig;
pub use config::DriverBinConfig;
pub use config::DriverConfig;
pub use config::EmbeddingProviderConfig;
pub use config::NamespaceConfig;
pub use config::PermissionConfig;
pub use config::ReplayPolicyConfig;
pub use config::WorkspaceConfig;
pub use config::WorkspaceGitConfig;
pub use error::DriverError;
pub use events::NatsEventSink;
pub use events::DriverEvent;
pub use events::DriverEventSink;
pub use events::NoopEventSink;
pub use harness::ClaudeHarness;
pub use llm_decider::LlmDecider;
pub use mcp_config::write_mcp_config;
pub use memory::DecisionMemory;
pub use memory::Namespace;
pub use memory::NoopDecisionMemory;
pub use memory::SqliteVecDecisionMemory;
pub use orchestrator::DriverOrchestrator;
pub use orchestrator::DriverOrchestratorBuilder;
pub use orchestrator::GoalOutcome;
pub use prompt::compose_turn_prompt;
pub use replay::DefaultReplayPolicy;
pub use replay::ReplayContext;
pub use replay::ReplayDecision;
pub use replay::ReplayOutcomeHint;
pub use replay::ReplayPolicy;
pub use socket::DriverSocketServer;
pub use socket::SocketMessage;
pub use workspace::GitWorktreeMode;
pub use workspace::WorkspaceManager;

Modules§

acceptance
Phase 67.5 — AcceptanceEvaluator and friends.
attempt
Per-turn loop. Owns the spawned claude subprocess for one turn, projects events back to the orchestrator, and synthesises an AttemptResult at the end.
compact_store
Phase 77.3 — CompactSummaryStore implementations.
config
Driver runtime configuration. The full YAML at config/driver/claude.yaml deserialises into DriverConfig.
error
evaluators
Phase 87.1 — LLM-as-judge AcceptanceEvaluator implementations.
events
DriverEvent enum + sink trait. Subjects when wired to NATS: agent.driver.{goal,attempt}.{started,completed}, agent.driver.{decision,acceptance,budget.exhausted,escalate}.
extract_memories
Phase 77.5 — post-turn LLM memory extraction.
extract_memories_prompt
Phase 77.5 — extraction prompt constants.
harness
ClaudeHarness — closes the AgentHarness contract from 67.0 by delegating to attempt::run_attempt.
llm_decider
LlmDecider — production PermissionDecider that consults a LlmClient (typically MiniMax). 67.4 wires this; 67.7 will plug a real DecisionMemory for semantic recall.
mcp_config
Generate the .nexo-mcp.json Claude reads via --mcp-config.
memory
Phase 67.4 + 67.7 — DecisionMemory trait and impls.
orchestrator
Goal-level loop. Takes a Goal, drives it to completion through the per-turn attempt loop. Emits NATS events at every major transition.
post_compact_cleanup
Phase 77.3 — PostCompactCleanup.
proactive
prompt
Compose the prompt fed to Claude per turn.
replay
Phase 67.8 — replay-policy. Classifies mid-turn errors observed by attempt::run_attempt into a ReplayDecision the orchestrator acts on (mark_invalid, rollback, bump consecutive_errors).
socket
Daemon-side Unix socket server. Bins spawned by Claude (SocketDecider in nexo-driver-permission) connect here and forward each permission_prompt request to the in-process decider.
workspace
Goal workspace management. Phase 67.6 added git-worktree mode on top of the 67.4 mkdir + traversal-guard surface.