Expand description
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
AcceptanceEvaluatorand friends.- attempt
- Per-turn loop. Owns the spawned
claudesubprocess for one turn, projects events back to the orchestrator, and synthesises anAttemptResultat the end. - compact_
store CompactSummaryStoreimplementations.- config
- Driver runtime configuration. The full YAML at
config/driver/claude.yamldeserialises intoDriverConfig. - error
- evaluators
- LLM-as-judge AcceptanceEvaluator implementations.
- events
DriverEventenum + sink trait. Subjects when wired to NATS:agent.driver.{goal,attempt}.{started,completed},agent.driver.{decision,acceptance,budget.exhausted,escalate}.- extract_
memories - Post-turn LLM memory extraction.
- extract_
memories_ prompt - Extraction prompt constants.
- harness
ClaudeHarness— closes theAgentHarnesscontract from 67.0 by delegating toattempt::run_attempt.- llm_
decider LlmDecider— productionPermissionDeciderthat consults aLlmClient(typically MiniMax). 67.4 wires this; 67.7 will plug a realDecisionMemoryfor semantic recall.- mcp_
config - Generate the
.nexo-mcp.jsonClaude reads via--mcp-config. - memory
DecisionMemorytrait 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 - PostCompactCleanup.
- proactive
- prompt
- Compose the prompt fed to Claude per turn.
- replay
- Replay-policy. Classifies mid-turn errors observed by
attempt::run_attemptinto aReplayDecisionthe orchestrator acts on (mark_invalid, rollback, bump consecutive_errors). - socket
- Daemon-side Unix socket server. Bins spawned by Claude (
SocketDeciderinnexo-driver-permission) connect here and forward eachpermission_promptrequest to the in-process decider. - workspace
- Goal workspace management. Supports a git-worktree mode on top of the plain mkdir + traversal-guard surface.